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
c4e6855d
Commit
c4e6855d
authored
Nov 21, 2020
by
宁斌
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1、統一網絡請求頭HeadersInterceptor 2、加入美團日誌框架logan對(網絡請求,頁面生命週期)進行埋點 3、增加user狀態管理類
parent
f99df214
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
64 changed files
with
960 additions
and
359 deletions
+960
-359
base-module/build.gradle
+2
-3
base-module/src/main/java/com/gingersoft/gsa/cloud/account/restaurant/BrandInfo.java
+15
-0
base-module/src/main/java/com/gingersoft/gsa/cloud/account/restaurant/RestaurantInfo.java
+18
-0
base-module/src/main/java/com/gingersoft/gsa/cloud/account/restaurant/ResturantInfoManager.java
+51
-0
base-module/src/main/java/com/gingersoft/gsa/cloud/account/user/UserConstans.java
+2
-5
base-module/src/main/java/com/gingersoft/gsa/cloud/account/user/UserContextManger.java
+44
-0
base-module/src/main/java/com/gingersoft/gsa/cloud/account/user/info/UserInfo.java
+30
-0
base-module/src/main/java/com/gingersoft/gsa/cloud/account/user/info/UserInfoManger.java
+48
-0
base-module/src/main/java/com/gingersoft/gsa/cloud/account/user/state/HasLoginState.java
+50
-0
base-module/src/main/java/com/gingersoft/gsa/cloud/account/user/state/NotLoginState.java
+33
-0
base-module/src/main/java/com/gingersoft/gsa/cloud/account/user/state/UserState.java
+25
-0
base-module/src/main/java/com/gingersoft/gsa/cloud/app/GsaCloudApplication.java
+22
-25
base-module/src/main/java/com/gingersoft/gsa/cloud/base/common/bean/MemberInfo.java
+7
-3
base-module/src/main/java/com/gingersoft/gsa/cloud/base/utils/crash/AppCrashHandler.java
+3
-1
base-module/src/main/java/com/gingersoft/gsa/cloud/base/utils/log/LogUtil.java
+1
-1
base-module/src/main/java/com/gingersoft/gsa/cloud/base/utils/okhttpUtils/OkHttp3Utils.java
+35
-33
base-module/src/main/java/com/gingersoft/gsa/cloud/config/LogInfoConfig.java
+0
-11
base-module/src/main/java/com/gingersoft/gsa/cloud/config/LoganConfig.java
+41
-0
base-module/src/main/java/com/gingersoft/gsa/cloud/config/OkHttpConfig.java
+19
-0
base-module/src/main/java/com/gingersoft/gsa/cloud/config/globalconfig/GlobalConfiguration.java
+2
-0
base-module/src/main/java/com/gingersoft/gsa/cloud/config/globalconfig/applyOptions/MyGlobalHttpHandler.java
+0
-28
base-module/src/main/java/com/gingersoft/gsa/cloud/config/globalconfig/applyOptions/MyOkhttpConfiguration.java
+4
-3
base-module/src/main/java/com/gingersoft/gsa/cloud/config/globalconfig/applyOptions/MyResponseErrorListener.java
+4
-2
base-module/src/main/java/com/gingersoft/gsa/cloud/config/globalconfig/applyOptions/MyRetrofitConfiguration.java
+4
-2
base-module/src/main/java/com/gingersoft/gsa/cloud/config/globalconfig/applyOptions/intercept/HeadersInterceptor.java
+56
-0
base-module/src/main/java/com/gingersoft/gsa/cloud/config/globalconfig/applyOptions/intercept/LoggingInterceptor.java
+11
-10
base-module/src/main/java/com/gingersoft/gsa/cloud/config/globalconfig/applyOptions/intercept/UserAgentInterceptor.java
+0
-23
base-module/src/main/java/com/gingersoft/gsa/cloud/config/globalconfig/lifecyclesOptioins/MyActivityLifecycle.java
+8
-1
base-module/src/main/java/com/gingersoft/gsa/cloud/config/globalconfig/lifecyclesOptioins/MyAppLifecycles.java
+2
-8
base-module/src/main/java/com/gingersoft/gsa/cloud/config/globalconfig/lifecyclesOptioins/MyFragmentLifecycle.java
+95
-0
base-module/src/main/java/com/gingersoft/gsa/cloud/constans/HttpsConstans.java
+18
-2
base-module/src/main/java/com/gingersoft/gsa/cloud/logan/LoganUtils.java
+94
-0
base-module/src/main/java/com/gingersoft/gsa/cloud/menu/Menu.java
+0
-12
base-module/src/main/java/com/gingersoft/gsa/cloud/ui/view/OrderPayView.java
+10
-6
base-module/src/main/res/layout/layout_order_pay.xml
+0
-2
delivery_pick_module/src/main/java/com/gingersoft/gsa/delivery_pick_mode/data/network/ServiceCreator.kt
+31
-37
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/contract/LoginInterfaceImpl.java
+1
-1
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/ui/activity/mvp/ui/activity/LoginActivity.java
+1
-1
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/ui/activity/mvp/ui/activity/WelcomeActivity.java
+1
-1
order-base/src/main/java/com/gingersoft/gsa/cloud/base/order/cart/ShoppingCart.java
+4
-1
order-base/src/main/java/com/gingersoft/gsa/cloud/base/order/commodity/MealCommodity.java
+1
-1
order-base/src/main/java/com/gingersoft/gsa/cloud/base/order/order/BaseOrder.java
+14
-0
print-module/src/main/java/com/joe/print/mvp/print/PrintBill.java
+0
-1
print-module/src/main/java/com/joe/print/mvp/print/PrinterRoot.java
+7
-1
print-module/src/main/res/layout/print_model_meal_member_integer_info.xml
+2
-2
table-base/src/main/java/com/gingersoft/gsa/cloud/base/table/bean/TableBean.java
+1
-0
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/discount/MealDiscountAction.java
+5
-0
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/table/action/PrintSkyorderAction.java
+1
-1
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/BaseOrderPresenter.java
+26
-16
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/MealStandPresenter.java
+1
-26
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/OrderContentPresenter.java
+1
-1
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/OrderPayPresenter.java
+11
-6
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/TablePresenter.java
+16
-3
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/MealStandActivity.java
+40
-35
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/OrderContentActivity.java
+9
-9
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/OrderPayActivity.java
+0
-7
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/TableActivity.java
+2
-4
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/adapter/BillItemAdapter.java
+2
-1
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/adapter/TableAdapter.java
+0
-2
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/adapter/meal/DiscountAdapter.java
+8
-2
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/adapter/meal/SelectMealAdapter.java
+14
-2
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/widget/UseMemberDialog.java
+1
-7
table-module/src/main/res/layout/meal_item_discount.xml
+5
-7
table-module/src/main/res/layout/meal_item_select_meal_stand.xml
+1
-3
No files found.
base-module/build.gradle
View file @
c4e6855d
...
...
@@ -152,10 +152,10 @@ dependencies {
//底部功能導航view
api
'com.github.ittianyu:BottomNavigationViewEx:2.0.4'
//滴滴開源 哆啦A夢:辅助开发工具、测试效率工具、视觉辅助工具
// debugImplementation rootProject.ext.dependencies["doraemonkit"]
debugImplementation
'com.didichuxing.doraemonkit:dokitx:3.3.3'
releaseImplementation
'com.didichuxing.doraemonkit:dokitx-no-op:3.3.3'
//美團金剛狼日誌框架
api
rootProject
.
ext
.
dependencies
[
'logan'
]
//RecyclerView 流式佈局layoutManager
api
'com.google.android:flexbox:1.0.0'
...
...
@@ -172,7 +172,6 @@ dependencies {
api
'androidx.core:core-ktx:+'
implementation
"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
api
'com.github.huangyanbin:SmartTable:2.2.0'
// api rootProject.ext.dependencies['logan']
}
repositories
{
...
...
base-module/src/main/java/com/gingersoft/gsa/cloud/account/restaurant/BrandInfo.java
0 → 100644
View file @
c4e6855d
package
com
.
gingersoft
.
gsa
.
cloud
.
account
.
restaurant
;
import
lombok.Data
;
/**
* @author : bin
* @create date: 2020-11-21
* @update date: 2020-11-21
* @description:
*/
@Data
public
class
BrandInfo
{
private
int
brandId
;
private
String
brandName
;
}
base-module/src/main/java/com/gingersoft/gsa/cloud/account/restaurant/RestaurantInfo.java
0 → 100644
View file @
c4e6855d
package
com
.
gingersoft
.
gsa
.
cloud
.
account
.
restaurant
;
import
lombok.Data
;
/**
* @author : bin
* @create date: 2020-11-21
* @update date: 2020-11-21
* @description:
*/
@Data
public
class
RestaurantInfo
{
private
int
restaurantId
;
private
String
restaurantName
;
private
String
gsPosShopId
;
}
base-module/src/main/java/com/gingersoft/gsa/cloud/account/restaurant/ResturantInfoManager.java
0 → 100644
View file @
c4e6855d
package
com
.
gingersoft
.
gsa
.
cloud
.
account
.
restaurant
;
import
com.gingersoft.gsa.cloud.account.user.UserConstans
;
import
com.gingersoft.gsa.cloud.account.user.info.UserInfo
;
import
com.gingersoft.gsa.cloud.base.utils.other.SPUtils
;
import
lombok.Data
;
/**
* @author : bin
* @create date: 2020-11-21
* @update date: 2020-11-21
* @description:
*/
@Data
public
class
ResturantInfoManager
{
private
static
ResturantInfoManager
resturantInfoManager
=
null
;
/**
* 品牌信息
*/
private
BrandInfo
brandInfo
;
/**
* 餐廳信息
*/
private
RestaurantInfo
restaurantInfo
;
private
ResturantInfoManager
()
{
}
public
static
ResturantInfoManager
getInstance
()
{
if
(
resturantInfoManager
==
null
)
{
synchronized
(
ResturantInfoManager
.
class
)
{
if
(
resturantInfoManager
==
null
)
{
resturantInfoManager
=
new
ResturantInfoManager
();
}
}
}
return
resturantInfoManager
;
}
public
void
setResturantInfoToLocation
(
RestaurantInfo
info
)
{
// SPUtils.put(UserConstans.restaurantId, info);
// SPUtils.put(UserConstans.restaurantId, info.ge);
// SPUtils.put(UserConstans.restaurantId, restaurantId);
}
}
base-module/src/main/java/com/gingersoft/gsa/cloud/
constans
/UserConstans.java
→
base-module/src/main/java/com/gingersoft/gsa/cloud/
account/user
/UserConstans.java
View file @
c4e6855d
package
com
.
gingersoft
.
gsa
.
cloud
.
constans
;
package
com
.
gingersoft
.
gsa
.
cloud
.
account
.
user
;
/**
* Created by Wyh on 2019/12/21.
*/
public
class
UserConstans
{
public
interface
UserConstans
{
public
final
static
String
LOGIN_USERNAME
=
"login_account"
;
public
final
static
String
LOGIN_PASSWORD
=
"login_password"
;
public
final
static
String
AUTO_LOGIN
=
"auto_login"
;
public
final
static
String
IS_GUIDE
=
"is_guide"
;
public
static
String
memberId
=
"member_id"
;
public
static
String
memberName
=
"member_name"
;
...
...
@@ -24,6 +23,4 @@ public class UserConstans {
/**當前賬號下所有餐檯品牌Json*/
public
static
String
brandRestaurantInfos
=
"brand_restaurant_infos"
;
//平闆登录状态
public
static
String
FLATBED_LOGIN_STATUS
=
"flatbed_login_status"
;
}
base-module/src/main/java/com/gingersoft/gsa/cloud/account/user/UserContextManger.java
0 → 100644
View file @
c4e6855d
package
com
.
gingersoft
.
gsa
.
cloud
.
account
.
user
;
import
com.gingersoft.gsa.cloud.account.user.info.UserInfo
;
import
com.gingersoft.gsa.cloud.account.user.state.UserState
;
import
lombok.Getter
;
import
lombok.Setter
;
/**
* @author : bin
* @create date: 2020-11-21
* @update date: 2020-11-21
* @description:用戶信息管理:如用戶登錄狀態,用戶信息等。。
*/
@Getter
@Setter
public
class
UserContextManger
{
private
static
UserContextManger
userContextManger
=
null
;
/**
* 用戶狀態
*/
private
UserState
state
;
/**
* 用戶信息
*/
private
UserInfo
info
;
private
UserContextManger
()
{
}
public
static
UserContextManger
getInstance
()
{
if
(
userContextManger
==
null
)
{
synchronized
(
UserContextManger
.
class
)
{
if
(
userContextManger
==
null
)
{
userContextManger
=
new
UserContextManger
();
}
}
}
return
userContextManger
;
}
}
base-module/src/main/java/com/gingersoft/gsa/cloud/account/user/info/UserInfo.java
0 → 100644
View file @
c4e6855d
package
com
.
gingersoft
.
gsa
.
cloud
.
account
.
user
.
info
;
import
java.util.Date
;
import
lombok.Data
;
/**
* @author : bin
* @create date: 2020-11-21
* @update date: 2020-11-21
* @description:
*/
@Data
public
class
UserInfo
{
private
Integer
userId
;
private
String
userName
;
private
Integer
groupId
;
private
Integer
parentId
;
private
Integer
merchantsId
;
private
String
mobile
;
private
String
email
;
private
byte
status
;
private
Date
createTime
;
private
String
createBy
;
private
Date
updateTime
;
private
String
updateBy
;
private
String
token
;
}
base-module/src/main/java/com/gingersoft/gsa/cloud/account/user/info/UserInfoManger.java
0 → 100644
View file @
c4e6855d
package
com
.
gingersoft
.
gsa
.
cloud
.
account
.
user
.
info
;
import
com.gingersoft.gsa.cloud.base.utils.other.SPUtils
;
import
com.gingersoft.gsa.cloud.account.user.UserConstans
;
/**
* @author : bin
* @create date: 2020-11-21
* @update date: 2020-11-21
* @description:
*/
public
class
UserInfoManger
{
private
static
UserInfoManger
userInfoManger
=
null
;
private
UserInfoManger
()
{
}
public
static
UserInfoManger
getInstance
()
{
if
(
userInfoManger
==
null
)
{
synchronized
(
UserInfoManger
.
class
)
{
if
(
userInfoManger
==
null
)
{
userInfoManger
=
new
UserInfoManger
();
}
}
}
return
userInfoManger
;
}
public
void
setUserInfoToLocation
(
UserInfo
info
)
{
SPUtils
.
put
(
UserConstans
.
token
,
info
.
getUserName
());
SPUtils
.
put
(
UserConstans
.
memberId
,
info
.
getUserName
());
SPUtils
.
put
(
UserConstans
.
memberName
,
info
.
getUserName
());
}
public
static
String
getLoginToken
()
{
return
(
String
)
SPUtils
.
get
(
UserConstans
.
token
,
""
);
}
public
static
int
getMemberId
()
{
return
(
int
)
SPUtils
.
get
(
UserConstans
.
memberId
,
0
);
}
public
static
String
getMemberName
()
{
return
(
String
)
SPUtils
.
get
(
UserConstans
.
memberName
,
""
);
}
}
base-module/src/main/java/com/gingersoft/gsa/cloud/account/user/state/HasLoginState.java
0 → 100644
View file @
c4e6855d
package
com
.
gingersoft
.
gsa
.
cloud
.
account
.
user
.
state
;
import
com.billy.cc.core.component.CC
;
import
com.gingersoft.gsa.cloud.base.utils.other.SPUtils
;
import
com.gingersoft.gsa.cloud.constans.PrintConstans
;
import
com.gingersoft.gsa.cloud.account.user.UserConstans
;
/**
* @author : bin
* @create date: 2020-11-21
* @update date: 2020-11-21
* @description:用戶已登錄
*/
public
class
HasLoginState
implements
UserState
{
@Override
public
void
toLoginPage
()
{
}
@Override
public
void
logOut
()
{
SPUtils
.
remove
(
UserConstans
.
token
);
SPUtils
.
remove
(
UserConstans
.
memberId
);
SPUtils
.
remove
(
UserConstans
.
brandId
);
SPUtils
.
remove
(
UserConstans
.
brandName
);
SPUtils
.
remove
(
UserConstans
.
restaurantId
);
SPUtils
.
remove
(
UserConstans
.
restaurantName
);
SPUtils
.
remove
(
UserConstans
.
memberName
);
SPUtils
.
remove
(
UserConstans
.
brandRestaurantInfos
);
SPUtils
.
remove
(
UserConstans
.
gsPosShopId
);
SPUtils
.
put
(
PrintConstans
.
IS_LOGIN
,
false
);
//关闭Prj打印服務
CC
.
obtainBuilder
(
"Component.Print"
)
.
setActionName
(
"stopPrintService"
)
.
build
()
.
call
();
//跳轉登陸頁面
CC
.
obtainBuilder
(
"User.Component.Login"
)
.
setActionName
(
"showActivityA"
)
.
build
()
.
call
();
}
@Override
public
void
toTargetPage
()
{
}
}
base-module/src/main/java/com/gingersoft/gsa/cloud/account/user/state/NotLoginState.java
0 → 100644
View file @
c4e6855d
package
com
.
gingersoft
.
gsa
.
cloud
.
account
.
user
.
state
;
import
com.billy.cc.core.component.CC
;
/**
* @author : bin
* @create date: 2020-11-21
* @update date: 2020-11-21
* @description:用戶未登錄
*/
public
class
NotLoginState
implements
UserState
{
@Override
public
void
toLoginPage
()
{
//跳轉登錄頁面
CC
.
obtainBuilder
(
"User.Component.Login"
)
.
setActionName
(
"showActivityA"
)
.
build
()
.
call
();
}
@Override
public
void
logOut
()
{
}
@Override
public
void
toTargetPage
()
{
}
}
base-module/src/main/java/com/gingersoft/gsa/cloud/account/user/state/UserState.java
0 → 100644
View file @
c4e6855d
package
com
.
gingersoft
.
gsa
.
cloud
.
account
.
user
.
state
;
/**
* @author : bin
* @create date: 2020-11-21
* @update date: 2020-11-21
* @description: 已登錄 未登錄
* */
public
interface
UserState
{
/**
* 跳轉到登錄頁面
*/
void
toLoginPage
();
/**
* 登出
*/
void
logOut
();
/**
* 跳轉到目標也
*/
void
toTargetPage
();
}
base-module/src/main/java/com/gingersoft/gsa/cloud/app/GsaCloudApplication.java
View file @
c4e6855d
...
...
@@ -9,6 +9,7 @@ import android.os.Build;
import
android.os.RemoteException
;
import
androidx.annotation.NonNull
;
import
com.billy.cc.core.component.CC
;
import
com.dianping.logan.Logan
;
import
com.didichuxing.doraemonkit.DoraemonKit
;
import
com.elvishew.xlog.LogConfiguration
;
import
com.elvishew.xlog.LogLevel
;
...
...
@@ -31,8 +32,9 @@ import com.gingersoft.gsa.cloud.base.utils.xlog.MyBackupStrategy;
import
com.gingersoft.gsa.cloud.config.DoraemonKitConfig
;
import
com.gingersoft.gsa.cloud.constans.HttpsConstans
;
import
com.gingersoft.gsa.cloud.constans.PrintConstans
;
import
com.gingersoft.gsa.cloud.
constans
.UserConstans
;
import
com.gingersoft.gsa.cloud.
account.user
.UserConstans
;
import
com.gingersoft.gsa.cloud.database.DaoManager
;
import
com.gingersoft.gsa.cloud.config.LoganConfig
;
import
com.gingersoft.gsa.cloud.ui.loadsir.CustomCallback
;
import
com.gingersoft.gsa.cloud.ui.loadsir.EmptyCallback
;
import
com.gingersoft.gsa.cloud.ui.loadsir.ErrorCallback
;
...
...
@@ -46,8 +48,7 @@ import com.scwang.smartrefresh.layout.SmartRefreshLayout;
import
com.scwang.smartrefresh.layout.footer.ClassicsFooter
;
import
com.scwang.smartrefresh.layout.header.ClassicsHeader
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.io.File
;
import
java.util.Locale
;
import
me.jessyan.autosize.AutoSize
;
import
me.jessyan.autosize.AutoSizeConfig
;
...
...
@@ -74,14 +75,6 @@ public class GsaCloudApplication extends BaseApplication {
* 是否開啟皮膚切換
*/
public
static
boolean
openSkinMake
=
false
;
/**
* okhttp连接超时20秒
*/
public
static
int
CONNECT_TIMEOUT
=
20
;
/**
* okhttp读写超时20秒
*/
public
static
int
REQUEST_TIMEOUT
=
20
;
public
static
boolean
isLogin
=
false
;
public
static
String
userName
=
""
;
...
...
@@ -133,6 +126,7 @@ public class GsaCloudApplication extends BaseApplication {
initPrint
();
//初始化日誌管理庫
initXLog
();
initLogan
();
//初始化crash記錄
AppCrashHandler
.
getInstance
().
init
(
this
);
...
...
@@ -141,22 +135,25 @@ public class GsaCloudApplication extends BaseApplication {
//上傳餐廳擴展信息
ExpandInfoSetting
.
initUpdateExtendedConfiguration
(
uiStyleConfiguration
,
functionConfiguration
);
// 设定一些通用的属性,这些属性在每次统计事件中都会附带
// 注意:如果此处的属性名与内置属性的名称相同,则内置属性会被覆盖
// Tracker.INSTANCE.addProperty("附加的属性1", "附加的属性1");
// Tracker.INSTANCE.addProperty("附加的属性2", "附加的属性2");
// // 设定上报数据的主机和接口
// // 注意:该方法一定要在Tracker.initialize()方法前调用
// // 否则会由于上报地址未初始化,在触发启动事件时导致崩溃
// Tracker.INSTANCE.setService("host", "path");
// // 设定上报数据的项目名称
// Tracker.INSTANCE.setProjectName("項目名");
// // 设定上报数据的模式
// Tracker.INSTANCE.setMode(TrackerMode.DEBUG_ONLY);
// // 初始化AndroidTracker
// Tracker.INSTANCE.initialize(this);
}
/**
* 初始化美團日誌框架
*/
private
void
initLogan
()
{
com
.
dianping
.
logan
.
LoganConfig
config
=
new
com
.
dianping
.
logan
.
LoganConfig
.
Builder
()
.
setCachePath
(
getApplicationContext
().
getFilesDir
().
getAbsolutePath
())
.
setPath
(
getApplicationContext
().
getExternalFilesDir
(
null
).
getAbsolutePath
()
+
File
.
separator
+
LoganConfig
.
FILE_NAME
)
.
setEncryptKey16
(
LoganConfig
.
EncryptKey16
.
getBytes
())
.
setEncryptIV16
(
LoganConfig
.
EncryptIV16
.
getBytes
())
.
build
();
Logan
.
init
(
config
);
}
/**
* 初始化滴滴開發,測試輔助工具哆啦A夢
*/
private
void
initDoraemonKit
()
{
DoraemonKit
.
install
(
getAppContext
(),
DoraemonKitConfig
.
PRODUCE_ID
);
}
...
...
base-module/src/main/java/com/gingersoft/gsa/cloud/base/common/bean/MemberInfo.java
View file @
c4e6855d
...
...
@@ -190,6 +190,9 @@ public class MemberInfo implements Serializable {
private
MemberExpireDateBean
memberExpireDate
;
private
VaildTimeBean
vaildTime
;
public
String
getLevelName
(){
if
(!
TextUtils
.
isEmpty
(
levelName1
))
{
return
levelName1
;
...
...
@@ -213,8 +216,6 @@ public class MemberInfo implements Serializable {
return
0
;
}
@Data
public
static
class
CreateTimeBean
implements
Serializable
{
/**
...
...
@@ -374,7 +375,10 @@ public class MemberInfo implements Serializable {
}
public
String
getMemberName
()
{
return
memberName
;
if
(!
TextUtils
.
isEmpty
(
memberName
)){
return
memberName
;
}
return
getLevelName
();
}
public
void
setMemberName
(
String
memberName
)
{
...
...
base-module/src/main/java/com/gingersoft/gsa/cloud/base/utils/crash/AppCrashHandler.java
View file @
c4e6855d
...
...
@@ -19,6 +19,7 @@ import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
import
com.gingersoft.gsa.cloud.base.utils.log.LogUtil
;
import
com.gingersoft.gsa.cloud.base.utils.okhttpUtils.OkHttp3Utils
;
import
com.gingersoft.gsa.cloud.constans.HttpsConstans
;
import
com.gingersoft.gsa.cloud.logan.LoganUtils
;
import
com.jess.arms.di.component.AppComponent
;
import
com.jess.arms.utils.ArmsUtils
;
import
com.jess.arms.utils.DeviceUtils
;
...
...
@@ -212,7 +213,8 @@ public class AppCrashHandler implements UncaughtExceptionHandler {
// 把上面获取的堆栈信息转为字符串,打印出来
String
stacktrace
=
result
.
toString
();
printWriter
.
close
();
LogUtil
.
d
(
TAG
,
stacktrace
);
LoganUtils
.
w_crash
(
"AppCrashHandler: "
+
stacktrace
);
//保存错误报告到文件
saveCrashInfo2File
(
ex
);
...
...
base-module/src/main/java/com/gingersoft/gsa/cloud/base/utils/log/LogUtil.java
View file @
c4e6855d
...
...
@@ -13,7 +13,7 @@ public class LogUtil {
//可以全局控制是否打印log日志
private
static
boolean
isPrintLog
=
true
;
private
static
int
LOG_MAXLENGTH
=
10
000
;
private
static
int
LOG_MAXLENGTH
=
6
000
;
private
final
static
String
TAG
=
"LogUtil"
;
public
static
void
v
(
String
msg
)
{
...
...
base-module/src/main/java/com/gingersoft/gsa/cloud/base/utils/okhttpUtils/OkHttp3Utils.java
View file @
c4e6855d
...
...
@@ -3,6 +3,8 @@ package com.gingersoft.gsa.cloud.base.utils.okhttpUtils;
import
com.gingersoft.gsa.cloud.app.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.base.utils.encryption.Aes
;
import
com.gingersoft.gsa.cloud.base.utils.time.TimeUtils
;
import
com.gingersoft.gsa.cloud.config.OkHttpConfig
;
import
com.gingersoft.gsa.cloud.config.globalconfig.applyOptions.intercept.HeadersInterceptor
;
import
com.gingersoft.gsa.cloud.config.globalconfig.applyOptions.intercept.LoggingInterceptor
;
import
com.gingersoft.gsa.cloud.constans.AppConstans
;
import
com.gingersoft.gsa.cloud.constans.HttpsConstans
;
...
...
@@ -43,9 +45,9 @@ public class OkHttp3Utils {
synchronized
(
OkHttp3Utils
.
class
)
{
if
(
mOkHttpClient
==
null
)
{
mOkHttpClient
=
new
OkHttpClient
.
Builder
()
.
connectTimeout
(
GsaCloudApplication
.
REQUEST_TIMEOUT
,
TimeUnit
.
SECONDS
)
.
readTimeout
(
GsaCloudApplication
.
REQUEST_TIMEOUT
,
TimeUnit
.
SECONDS
)
.
addInterceptor
(
new
UserAgentIntercepte
r
())
.
connectTimeout
(
OkHttpConfig
.
REQUEST_TIMEOUT
,
TimeUnit
.
SECONDS
)
.
readTimeout
(
OkHttpConfig
.
REQUEST_TIMEOUT
,
TimeUnit
.
SECONDS
)
.
addInterceptor
(
new
HeadersIntercepto
r
())
.
addInterceptor
(
new
LoggingInterceptor
())
.
build
();
...
...
@@ -216,36 +218,36 @@ public class OkHttp3Utils {
/**
* 添加请求头
*/
public
static
class
UserAgentIntercepter
implements
Interceptor
{
@Override
public
Response
intercept
(
Chain
chain
)
throws
IOException
{
Request
request
=
chain
.
request
();
Headers
headers
=
request
.
headers
();
Headers
.
Builder
builder
=
new
Headers
.
Builder
();
for
(
int
i
=
0
;
i
<
headers
.
size
();
i
++)
{
builder
.
set
(
headers
.
name
(
i
),
headers
.
value
(
i
));
}
builder
.
set
(
"mobileVersion"
,
android
.
os
.
Build
.
VERSION
.
RELEASE
);
//set表示name1是唯一的,会覆盖掉已经存在的,add不会覆盖已经存在的头,可以存在多个
builder
.
set
(
"mobielModel"
,
android
.
os
.
Build
.
MODEL
);
builder
.
set
(
"apptype"
,
AppConstans
.
APP_TYPE
);
builder
.
set
(
"appinfo"
,
DeviceUtils
.
getVersionName
(
GsaCloudApplication
.
getAppContext
()));
builder
.
set
(
"mobileId"
,
"1"
);
if
(
GsaCloudApplication
.
isLogin
)
{
String
token
;
int
memberId
=
GsaCloudApplication
.
getMemberId
();
String
loginToken
=
GsaCloudApplication
.
getLoginToken
();
token
=
Aes
.
aesEncrypt
(
"9_"
+
memberId
+
"_"
+
System
.
currentTimeMillis
()
+
"_"
+
loginToken
);
token
=
token
.
replaceAll
(
"\r|\n"
,
""
);
builder
.
set
(
"token"
,
token
);
}
Request
request1
=
chain
.
request
().
newBuilder
().
headers
(
builder
.
build
()).
build
();
return
chain
.
proceed
(
request1
);
}
}
//
public static class UserAgentIntercepter implements Interceptor {
//
//
@Override
//
public Response intercept(Chain chain) throws IOException {
//
Request request = chain.request();
//
Headers headers = request.headers();
//
//
Headers.Builder builder = new Headers.Builder();
//
for (int i = 0; i < headers.size(); i++) {
//
builder.set(headers.name(i), headers.value(i));
//
}
//
//
builder.set("mobileVersion", android.os.Build.VERSION.RELEASE);//set表示name1是唯一的,会覆盖掉已经存在的,add不会覆盖已经存在的头,可以存在多个
//
builder.set("mobielModel", android.os.Build.MODEL);
//
builder.set("apptype", AppConstans.APP_TYPE);
//
builder.set("appinfo", DeviceUtils.getVersionName(GsaCloudApplication.getAppContext()));
//
builder.set("mobileId", "1");
//
//
if (GsaCloudApplication.isLogin) {
//
String token;
//
int memberId = GsaCloudApplication.getMemberId();
//
String loginToken = GsaCloudApplication.getLoginToken();
//
token = Aes.aesEncrypt("9_" + memberId + "_" + System.currentTimeMillis() + "_" + loginToken);
//
token = token.replaceAll("\r|\n", "");
//
builder.set("token", token);
//
}
//
Request request1 = chain.request().newBuilder().headers(builder.build()).build();
//
return chain.proceed(request1);
//
}
// }request1
/**
...
...
base-module/src/main/java/com/gingersoft/gsa/cloud/config/LogInfoConfig.java
deleted
100644 → 0
View file @
f99df214
package
com
.
gingersoft
.
gsa
.
cloud
.
config
;
/**
* @author : bin
* @create date: 2020-11-05
* @update date: 2020-11-05
* @description:
*/
public
class
LogInfoConfig
{
}
base-module/src/main/java/com/gingersoft/gsa/cloud/config/LoganConfig.java
0 → 100644
View file @
c4e6855d
package
com
.
gingersoft
.
gsa
.
cloud
.
config
;
/**
* @author : bin
* @create date: 2020-11-05
* @update date: 2020-11-05
* @description:美團日誌框架配置
*/
public
class
LoganConfig
{
public
static
final
String
FILE_NAME
=
"logan_v1"
;
public
static
final
String
EncryptKey16
=
"0123456789012345"
;
public
static
final
String
EncryptIV16
=
"0123456789012345"
;
public
static
final
String
APP_ID
=
"gingersoft1008611"
;
public
static
final
String
UPLOAD_LOG_URL
=
"http://192.168.1.113:8080/logan-web/logan/upload.json"
;
/**
* 代码日志
*/
public
static
final
byte
CODE_LEVLE
=
1
;
/**
* 網絡日誌
*/
public
static
final
byte
NETWORK_LEVLE
=
2
;
/**
* 用戶行為日誌(頁面跳轉,交互,觸摸反饋等)
*/
public
static
final
byte
ACTION_LEVLE
=
3
;
/**
* 崩潰日誌
*/
public
static
final
byte
CRASH_LEVLE
=
4
;
/**
* H5日誌
*/
public
static
final
byte
H5_LEVLE
=
5
;
/**
* native日誌
*/
public
static
final
byte
native_LEVLE
=
6
;
}
base-module/src/main/java/com/gingersoft/gsa/cloud/config/OkHttpConfig.java
0 → 100644
View file @
c4e6855d
package
com
.
gingersoft
.
gsa
.
cloud
.
config
;
/**
* @author : bin
* @create date: 2020-11-21
* @update date: 2020-11-21
* @description:
*/
public
class
OkHttpConfig
{
/**
* okhttp连接超时20秒
*/
public
static
final
byte
CONNECT_TIMEOUT
=
20
;
/**
* okhttp读写超时20秒
*/
public
static
final
byte
REQUEST_TIMEOUT
=
20
;
}
base-module/src/main/java/com/gingersoft/gsa/cloud/config/globalconfig/GlobalConfiguration.java
View file @
c4e6855d
...
...
@@ -10,6 +10,7 @@ import com.gingersoft.gsa.cloud.config.globalconfig.applyOptions.MyRetrofitConfi
import
com.gingersoft.gsa.cloud.config.globalconfig.applyOptions.MyRxCacheConfiguration
;
import
com.gingersoft.gsa.cloud.config.globalconfig.lifecyclesOptioins.MyActivityLifecycle
;
import
com.gingersoft.gsa.cloud.config.globalconfig.lifecyclesOptioins.MyAppLifecycles
;
import
com.gingersoft.gsa.cloud.config.globalconfig.lifecyclesOptioins.MyFragmentLifecycle
;
import
com.gingersoft.gsa.cloud.constans.HttpsConstans
;
import
com.jess.arms.base.delegate.AppLifecycles
;
import
com.jess.arms.di.module.GlobalConfigModule
;
...
...
@@ -55,6 +56,7 @@ public class GlobalConfiguration implements ConfigModule {
@Override
public
void
injectFragmentLifecycle
(
Context
context
,
List
<
FragmentManager
.
FragmentLifecycleCallbacks
>
lifecycles
)
{
//向Fragment的生命周期中注入一些自定义逻辑
lifecycles
.
add
(
new
MyFragmentLifecycle
());
}
...
...
base-module/src/main/java/com/gingersoft/gsa/cloud/config/globalconfig/applyOptions/MyGlobalHttpHandler.java
View file @
c4e6855d
...
...
@@ -14,7 +14,6 @@ import okhttp3.Response;
public
class
MyGlobalHttpHandler
implements
GlobalHttpHandler
{
private
final
String
TAG
=
this
.
getClass
().
getSimpleName
();
@Override
public
Response
onHttpResultResponse
(
String
httpResult
,
Interceptor
.
Chain
chain
,
Response
response
)
{
...
...
@@ -25,35 +24,8 @@ public class MyGlobalHttpHandler implements GlobalHttpHandler {
@Override
public
Request
onHttpRequestBefore
(
Interceptor
.
Chain
chain
,
Request
request
)
{
// 统一处理http请求。eg:给request统一添加token或者header以及参数加密等操作
String
requestBody
=
request
.
toString
();
String
token
=
""
;
if
(
GsaCloudApplication
.
isLogin
)
{
int
memberId
=
GsaCloudApplication
.
getMemberId
();
String
loginToken
=
GsaCloudApplication
.
getLoginToken
();
token
=
Aes
.
aesEncrypt
(
"9_"
+
memberId
+
"_"
+
System
.
currentTimeMillis
()
+
"_"
+
loginToken
);
token
=
token
.
replaceAll
(
"\r|\n"
,
""
);
}
Headers
.
Builder
builder
=
new
Headers
.
Builder
();
builder
.
set
(
"mobileVersion"
,
android
.
os
.
Build
.
VERSION
.
RELEASE
);
builder
.
set
(
"mobielModel"
,
android
.
os
.
Build
.
MODEL
);
builder
.
set
(
"apptype"
,
AppConstans
.
APP_TYPE
);
builder
.
set
(
"appinfo"
,
DeviceUtils
.
getVersionName
(
GsaCloudApplication
.
getAppContext
()));
builder
.
set
(
"mobileId"
,
"1"
);
Headers
headers
=
request
.
headers
();
for
(
int
i
=
0
;
i
<
headers
.
size
();
i
++)
{
builder
.
set
(
headers
.
name
(
i
),
headers
.
value
(
i
));
}
if
(
GsaCloudApplication
.
isLogin
){
builder
.
set
(
"token"
,
token
);
}
// builder.set("Domain-Name", "common");
return
chain
.
request
().
newBuilder
()
.
headers
(
builder
.
build
())
.
build
();
}
}
base-module/src/main/java/com/gingersoft/gsa/cloud/config/globalconfig/applyOptions/MyOkhttpConfiguration.java
View file @
c4e6855d
...
...
@@ -3,6 +3,7 @@ package com.gingersoft.gsa.cloud.config.globalconfig.applyOptions;
import
android.content.Context
;
import
com.gingersoft.gsa.cloud.app.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.config.OkHttpConfig
;
import
com.jess.arms.di.module.ClientModule
;
import
java.util.concurrent.TimeUnit
;
...
...
@@ -23,9 +24,9 @@ public class MyOkhttpConfiguration implements ClientModule.OkhttpConfiguration {
@Override
public
void
configOkhttp
(
Context
context
,
OkHttpClient
.
Builder
builder
)
{
// builder.sslSocketFactory(); //支持 Https,详情请百度
builder
.
connectTimeout
(
GsaCloudApplication
.
CONNECT_TIMEOUT
,
TimeUnit
.
SECONDS
);
builder
.
writeTimeout
(
GsaCloudApplication
.
REQUEST_TIMEOUT
,
TimeUnit
.
SECONDS
);
builder
.
readTimeout
(
GsaCloudApplication
.
REQUEST_TIMEOUT
,
TimeUnit
.
SECONDS
);
builder
.
connectTimeout
(
OkHttpConfig
.
CONNECT_TIMEOUT
,
TimeUnit
.
SECONDS
);
builder
.
writeTimeout
(
OkHttpConfig
.
REQUEST_TIMEOUT
,
TimeUnit
.
SECONDS
);
builder
.
readTimeout
(
OkHttpConfig
.
REQUEST_TIMEOUT
,
TimeUnit
.
SECONDS
);
//使用一行代码监听 Retrofit/Okhttp 上传下载进度监听,以及 Glide 加载进度监听 详细使用方法查看 https://github.com/JessYanCoding/ProgressManager
ProgressManager
.
getInstance
().
with
(
builder
);
//让 Retrofit 同时支持多个 BaseUrl 以及动态改变 BaseUrl. 详细使用请方法查看 https://github.com/JessYanCoding/RetrofitUrlManager
...
...
base-module/src/main/java/com/gingersoft/gsa/cloud/config/globalconfig/applyOptions/MyResponseErrorListener.java
View file @
c4e6855d
...
...
@@ -8,8 +8,8 @@ import android.text.TextUtils;
import
com.billy.cc.core.component.CC
;
import
com.gingersoft.gsa.cloud.base.R
;
import
com.gingersoft.gsa.cloud.app.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.base.utils.log.LogUtil
;
import
com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils
;
import
com.gingersoft.gsa.cloud.logan.LoganUtils
;
import
com.google.gson.JsonIOException
;
import
com.google.gson.JsonParseException
;
import
com.jess.arms.utils.ArmsUtils
;
...
...
@@ -50,7 +50,9 @@ public class MyResponseErrorListener implements ResponseErrorListener {
}
// ArmsUtils.snackbarText(msg);
// LogUtil.d("handleResponseError: " + t.getMessage());
LogUtil
.
d
(
TAG
,
t
.
getMessage
());
LoganUtils
.
w_network
(
"請求錯誤: "
+
t
.
getMessage
());
if
(!
TextUtils
.
isEmpty
(
msg
))
{
ToastUtils
.
show
(
context
,
msg
);
}
...
...
base-module/src/main/java/com/gingersoft/gsa/cloud/config/globalconfig/applyOptions/MyRetrofitConfiguration.java
View file @
c4e6855d
...
...
@@ -3,8 +3,10 @@ package com.gingersoft.gsa.cloud.config.globalconfig.applyOptions;
import
android.content.Context
;
import
com.gingersoft.gsa.cloud.base.BuildConfig
;
import
com.gingersoft.gsa.cloud.config.globalconfig.applyOptions.intercept.LoggingInterceptor
;
import
com.gingersoft.gsa.cloud.config.globalconfig.applyOptions.intercept.HeadersInterceptor
;
import
com.jess.arms.di.module.ClientModule
;
import
me.jessyan.retrofiturlmanager.RetrofitUrlManager
;
import
okhttp3.OkHttpClient
;
import
retrofit2.Retrofit
;
...
...
@@ -17,7 +19,7 @@ public class MyRetrofitConfiguration implements ClientModule.RetrofitConfigurati
if
(
BuildConfig
.
DEBUG
)
{
clientBuilder
.
addInterceptor
(
new
LoggingInterceptor
());
//使用自定义的Log拦截器
}
// clientBuilder.addInterceptor(new UserAgent
Interceptor());//使用自定义User-Agent
//
builder.client(RetrofitUrlManager.getInstance().with(clientBuilder).build());
clientBuilder
.
addInterceptor
(
new
Headers
Interceptor
());
//使用自定义User-Agent
builder
.
client
(
RetrofitUrlManager
.
getInstance
().
with
(
clientBuilder
).
build
());
}
}
base-module/src/main/java/com/gingersoft/gsa/cloud/config/globalconfig/applyOptions/intercept/HeadersInterceptor.java
0 → 100644
View file @
c4e6855d
package
com
.
gingersoft
.
gsa
.
cloud
.
config
.
globalconfig
.
applyOptions
.
intercept
;
import
com.gingersoft.gsa.cloud.app.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.base.utils.encryption.Aes
;
import
com.gingersoft.gsa.cloud.constans.AppConstans
;
import
com.jess.arms.utils.DeviceUtils
;
import
java.io.IOException
;
import
okhttp3.Headers
;
import
okhttp3.Interceptor
;
import
okhttp3.Request
;
import
okhttp3.Response
;
/**
* 添加請求頭信息
*/
public
class
HeadersInterceptor
implements
Interceptor
{
@Override
public
Response
intercept
(
Chain
chain
)
throws
IOException
{
Request
originalRequest
=
chain
.
request
();
Headers
.
Builder
builder
=
new
Headers
.
Builder
();
builder
.
set
(
"mobileVersion"
,
android
.
os
.
Build
.
VERSION
.
RELEASE
);
builder
.
set
(
"mobielModel"
,
android
.
os
.
Build
.
MODEL
);
builder
.
set
(
"apptype"
,
AppConstans
.
APP_TYPE
);
builder
.
set
(
"appinfo"
,
DeviceUtils
.
getVersionName
(
GsaCloudApplication
.
getAppContext
()));
builder
.
set
(
"mobileId"
,
"1"
);
Headers
headers
=
originalRequest
.
headers
();
for
(
int
i
=
0
;
i
<
headers
.
size
();
i
++)
{
builder
.
set
(
headers
.
name
(
i
),
headers
.
value
(
i
));
}
if
(
GsaCloudApplication
.
isLogin
)
{
builder
.
set
(
"token"
,
getToken
());
}
Request
requestWithUserAgent
=
originalRequest
.
newBuilder
()
.
headers
(
builder
.
build
())
.
build
();
return
chain
.
proceed
(
requestWithUserAgent
);
}
private
String
getToken
()
{
String
token
=
""
;
if
(
GsaCloudApplication
.
isLogin
)
{
int
memberId
=
GsaCloudApplication
.
getMemberId
();
String
loginToken
=
GsaCloudApplication
.
getLoginToken
();
token
=
Aes
.
aesEncrypt
(
"9_"
+
memberId
+
"_"
+
System
.
currentTimeMillis
()
+
"_"
+
loginToken
);
token
=
token
.
replaceAll
(
"\r|\n"
,
""
);
}
return
token
;
}
}
\ No newline at end of file
base-module/src/main/java/com/gingersoft/gsa/cloud/config/globalconfig/applyOptions/intercept/LoggingInterceptor.java
View file @
c4e6855d
package
com
.
gingersoft
.
gsa
.
cloud
.
config
.
globalconfig
.
applyOptions
.
intercept
;
import
com.gingersoft.gsa.cloud.
base.utils.log.LogUtil
;
import
com.gingersoft.gsa.cloud.
logan.LoganUtils
;
import
java.io.IOException
;
...
...
@@ -27,11 +27,11 @@ public class LoggingInterceptor implements Interceptor {
sb
.
append
(
body
.
encodedName
(
i
)
+
"="
+
body
.
encodedValue
(
i
)
+
","
);
}
sb
.
delete
(
sb
.
length
()
-
1
,
sb
.
length
());
Log
Util
.
d
(
"CSDN_LQR"
,
String
.
format
(
"發送請求 %s on %s %n%s %nRequestParams:{%s}"
,
Log
anUtils
.
w_network
(
String
.
format
(
"發送請求 %s on %s %n%s %nRequestParams:{%s}"
,
request
.
url
(),
chain
.
connection
(),
request
.
headers
(),
sb
.
toString
()));
}
}
else
{
Log
Util
.
d
(
"CSDN_LQR"
,
String
.
format
(
"發送請求 %s on %s%n%s"
,
Log
anUtils
.
w_network
(
String
.
format
(
"發送請求 %s on %s%n%s"
,
request
.
url
(),
chain
.
connection
(),
request
.
headers
()));
}
Response
response
=
chain
.
proceed
(
request
);
...
...
@@ -40,13 +40,13 @@ public class LoggingInterceptor implements Interceptor {
//因为response.body().string()之后,response中的流会被关闭,程序会报错,我们需要创建出一
//个新的response给应用层处理
ResponseBody
responseBody
=
response
.
peekBody
(
1024
*
1024
);
Log
Util
.
d
(
"CSDN_LQR
"
,
String
.
format
(
"接收響應: [%s] %n返回json:【%s】 %.1fms %n%s"
,
response
.
request
().
url
(),
responseBody
.
string
()
,
(
t2
-
t1
)
/
1
e6d
,
response
.
headers
()
));
Log
anUtils
.
w_network
(
String
.
format
(
"接收響應: [%s] %n返回json:【%s】 %.1fms %n%s
"
,
response
.
request
().
url
()
,
responseBody
.
string
(),
(
t2
-
t1
)
/
1
e6d
,
response
.
headers
()
));
return
response
;
}
}
\ No newline at end of file
base-module/src/main/java/com/gingersoft/gsa/cloud/config/globalconfig/applyOptions/intercept/UserAgentInterceptor.java
deleted
100644 → 0
View file @
f99df214
package
com
.
gingersoft
.
gsa
.
cloud
.
config
.
globalconfig
.
applyOptions
.
intercept
;
import
java.io.IOException
;
import
okhttp3.Interceptor
;
import
okhttp3.Request
;
import
okhttp3.Response
;
/**
* 添加UA拦截器,B站请求API需要加上UA才能正常使用
*/
public
class
UserAgentInterceptor
implements
Interceptor
{
@Override
public
Response
intercept
(
Chain
chain
)
throws
IOException
{
Request
originalRequest
=
chain
.
request
();
Request
requestWithUserAgent
=
originalRequest
.
newBuilder
()
// .removeHeader("User-Agent")
// .addHeader("User-Agent", Api.COMMON_UA_STR)
.
build
();
return
chain
.
proceed
(
requestWithUserAgent
);
}
}
\ No newline at end of file
base-module/src/main/java/com/gingersoft/gsa/cloud/config/globalconfig/lifecyclesOptioins/MyActivityLifecycle.java
View file @
c4e6855d
...
...
@@ -10,6 +10,7 @@ import com.gingersoft.gsa.cloud.app.GsaCloudApplication;
import
com.gingersoft.gsa.cloud.base.utils.CommonConfiguration
;
import
com.gingersoft.gsa.cloud.database.utils.FoodComboDaoUtils
;
import
com.gingersoft.gsa.cloud.database.utils.ModifierDaoUtils
;
import
com.gingersoft.gsa.cloud.logan.LoganUtils
;
import
io.reactivex.Observable
;
import
io.reactivex.ObservableEmitter
;
...
...
@@ -22,6 +23,7 @@ public class MyActivityLifecycle implements Application.ActivityLifecycleCallbac
@Override
public
void
onActivityCreated
(
Activity
activity
,
Bundle
bundle
)
{
LoganUtils
.
w_action
(
activity
.
getClass
().
getSimpleName
()
+
": onActivityCreated"
);
// EventBus.getDefault().register(activity);
if
(!
activity
.
getIntent
().
getBooleanExtra
(
"isInitToolbar"
,
false
))
{
//由于加强框架的兼容性,故将 setContentView 放到 onActivityCreated 之后,onActivityStarted 之前执行
...
...
@@ -34,11 +36,13 @@ public class MyActivityLifecycle implements Application.ActivityLifecycleCallbac
@Override
public
void
onActivityStarted
(
Activity
activity
)
{
LoganUtils
.
w_action
(
activity
.
getClass
().
getSimpleName
()
+
": onActivityStarted"
);
}
@Override
public
void
onActivityResumed
(
Activity
activity
)
{
String
name
=
activity
.
getClass
().
getSimpleName
();
LoganUtils
.
w_action
(
name
+
": onActivityResumed"
);
if
(
name
.
equals
(
"NewMainActivity"
))
{
Observable
.
create
(
new
ObservableOnSubscribe
<
Void
>()
{
...
...
@@ -71,19 +75,22 @@ public class MyActivityLifecycle implements Application.ActivityLifecycleCallbac
@Override
public
void
onActivityPaused
(
Activity
activity
)
{
LoganUtils
.
w_action
(
activity
.
getClass
().
getSimpleName
()
+
": onActivityPaused"
);
}
@Override
public
void
onActivityStopped
(
Activity
activity
)
{
// GsaCloudApplication.getAppContext().setCurrentActivity(null
);
LoganUtils
.
w_action
(
activity
.
getClass
().
getSimpleName
()
+
": onActivityStopped"
);
}
@Override
public
void
onActivitySaveInstanceState
(
Activity
activity
,
Bundle
bundle
)
{
LoganUtils
.
w_action
(
activity
.
getClass
().
getSimpleName
()
+
": onActivitySaveInstanceState"
);
}
@Override
public
void
onActivityDestroyed
(
Activity
activity
)
{
LoganUtils
.
w_action
(
activity
.
getClass
().
getSimpleName
()
+
": onActivityDestroyed"
);
// EventBus.getDefault().unregister(activity);
//横竖屏切换或配置改变时, Activity 会被重新创建实例, 但 Bundle 中的基础数据会被保存下来,移除该数据是为了保证重新创建的实例可以正常工作
activity
.
getIntent
().
removeExtra
(
"isInitToolbar"
);
...
...
base-module/src/main/java/com/gingersoft/gsa/cloud/config/globalconfig/lifecyclesOptioins/MyAppLifecycles.java
View file @
c4e6855d
...
...
@@ -4,6 +4,7 @@ import android.app.Application;
import
android.content.Context
;
import
com.gingersoft.gsa.cloud.base.BuildConfig
;
import
com.gingersoft.gsa.cloud.logan.LoganUtils
;
import
com.jess.arms.base.delegate.AppLifecycles
;
import
com.squareup.leakcanary.LeakCanary
;
import
com.squareup.leakcanary.RefWatcher
;
...
...
@@ -19,7 +20,7 @@ public class MyAppLifecycles implements AppLifecycles {
@Override
public
void
onCreate
(
Application
application
)
{
// initTimber(
);
LoganUtils
.
w_action
(
application
.
getClass
().
getSimpleName
()
+
": onCreate....."
);
initLeakCanary
(
application
);
initFragmentation
();
// initARouter(application);
...
...
@@ -69,13 +70,6 @@ public class MyAppLifecycles implements AppLifecycles {
mRefWatcher
=
BuildConfig
.
USE_CANARY
?
LeakCanary
.
install
(
application
)
:
RefWatcher
.
DISABLED
;
}
private
void
initTimber
()
{
// if (BuildConfig.LOG_DEBUG) {
// Timber日志打印
// Timber.plant(new Timber.DebugTree());
// }
}
public
RefWatcher
getRefWatcher
()
{
return
mRefWatcher
;
}
...
...
base-module/src/main/java/com/gingersoft/gsa/cloud/config/globalconfig/lifecyclesOptioins/MyFragmentLifecycle.java
0 → 100644
View file @
c4e6855d
package
com
.
gingersoft
.
gsa
.
cloud
.
config
.
globalconfig
.
lifecyclesOptioins
;
import
android.annotation.SuppressLint
;
import
android.app.Activity
;
import
android.app.Application
;
import
android.content.Context
;
import
android.os.Bundle
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.fragment.app.Fragment
;
import
androidx.fragment.app.FragmentManager
;
import
com.billy.cc.core.component.CC
;
import
com.gingersoft.gsa.cloud.app.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.base.utils.CommonConfiguration
;
import
com.gingersoft.gsa.cloud.database.utils.FoodComboDaoUtils
;
import
com.gingersoft.gsa.cloud.database.utils.ModifierDaoUtils
;
import
com.gingersoft.gsa.cloud.logan.LoganUtils
;
import
io.reactivex.Observable
;
import
io.reactivex.ObservableEmitter
;
import
io.reactivex.ObservableOnSubscribe
;
import
io.reactivex.schedulers.Schedulers
;
@SuppressLint
(
"NewApi"
)
public
class
MyFragmentLifecycle
extends
FragmentManager
.
FragmentLifecycleCallbacks
{
@Override
public
void
onFragmentAttached
(
@NonNull
FragmentManager
fm
,
@NonNull
Fragment
f
,
@NonNull
Context
context
)
{
LoganUtils
.
w_action
(
f
.
getClass
().
getSimpleName
()
+
": onFragmentAttached"
);
}
@Override
public
void
onFragmentCreated
(
@NonNull
FragmentManager
fm
,
@NonNull
Fragment
f
,
@Nullable
Bundle
savedInstanceState
)
{
LoganUtils
.
w_action
(
f
.
getClass
().
getSimpleName
()
+
": onFragmentCreated"
);
}
@Override
public
void
onFragmentActivityCreated
(
@NonNull
FragmentManager
fm
,
@NonNull
Fragment
f
,
@Nullable
Bundle
savedInstanceState
)
{
LoganUtils
.
w_action
(
f
.
getClass
().
getSimpleName
()
+
": onFragmentActivityCreated"
);
}
@Override
public
void
onFragmentViewCreated
(
@NonNull
FragmentManager
fm
,
@NonNull
Fragment
f
,
@NonNull
View
v
,
@Nullable
Bundle
savedInstanceState
)
{
LoganUtils
.
w_action
(
f
.
getClass
().
getSimpleName
()
+
": onFragmentViewCreated"
);
}
@Override
public
void
onFragmentStarted
(
@NonNull
FragmentManager
fm
,
@NonNull
Fragment
f
)
{
LoganUtils
.
w_action
(
f
.
getClass
().
getSimpleName
()
+
": onFragmentStarted"
);
}
@Override
public
void
onFragmentResumed
(
@NonNull
FragmentManager
fm
,
@NonNull
Fragment
f
)
{
LoganUtils
.
w_action
(
f
.
getClass
().
getSimpleName
()
+
": onFragmentResumed"
);
}
@Override
public
void
onFragmentPaused
(
@NonNull
FragmentManager
fm
,
@NonNull
Fragment
f
)
{
LoganUtils
.
w_action
(
f
.
getClass
().
getSimpleName
()
+
": onFragmentPaused"
);
}
@Override
public
void
onFragmentStopped
(
@NonNull
FragmentManager
fm
,
@NonNull
Fragment
f
)
{
LoganUtils
.
w_action
(
f
.
getClass
().
getSimpleName
()
+
": onFragmentStopped"
);
}
@Override
public
void
onFragmentSaveInstanceState
(
@NonNull
FragmentManager
fm
,
@NonNull
Fragment
f
,
@NonNull
Bundle
outState
)
{
LoganUtils
.
w_action
(
f
.
getClass
().
getSimpleName
()
+
": onFragmentSaveInstanceState"
);
}
@Override
public
void
onFragmentViewDestroyed
(
@NonNull
FragmentManager
fm
,
@NonNull
Fragment
f
)
{
LoganUtils
.
w_action
(
f
.
getClass
().
getSimpleName
()
+
": onFragmentViewDestroyed"
);
}
@Override
public
void
onFragmentDestroyed
(
@NonNull
FragmentManager
fm
,
@NonNull
Fragment
f
)
{
LoganUtils
.
w_action
(
f
.
getClass
().
getSimpleName
()
+
": onFragmentDestroyed"
);
}
@Override
public
void
onFragmentDetached
(
@NonNull
FragmentManager
fm
,
@NonNull
Fragment
f
)
{
LoganUtils
.
w_action
(
f
.
getClass
().
getSimpleName
()
+
": onFragmentDetached"
);
}
}
base-module/src/main/java/com/gingersoft/gsa/cloud/constans/HttpsConstans.java
View file @
c4e6855d
...
...
@@ -76,11 +76,21 @@ public class HttpsConstans {
public
static
String
SYSTEM_PATH
=
"/ricepon-system/api/"
;
public
static
String
API_RICEPON_MEMBER
=
"/ricepon-member/api/"
;
//---------------------------------------打印skyorder QRCode----------------------------------------------------------------------------------
/**
* QRCode相關
*/
public
static
final
String
PRINT_QRCODE_ADDRESS_URL_FORMAL
=
"http://m.ricepon.com"
;
public
static
final
String
PRINT_QRCODE_SUFFIX
=
"/member-web/qrcode/qrcode.html?WMP0&?arg="
;
public
static
final
String
PRINT_QRCODE_ADDRESS_URL_HK
=
"http://hktest.ricepon.com:61177"
;
//---------------------------------------打印Skyorder QRCode----------------------------------------------------------------------------------
public
static
final
String
PRINT_SKY_QRCODE_SUFFIX
=
"/member-web/qrcode/qrcode.html?WMP0&?arg="
;
public
static
String
PRINT_SKY_QRCODE_ADDRESS
=
PRINT_QRCODE_ADDRESS_URL_FORMAL
+
PRINT_SKY_QRCODE_SUFFIX
;
//----------------------------------------打印積分QRCode-----------------------------------------------------------------------------------------
public
static
final
String
PRINT_QRCODE_SUFFIX
=
"/member-web/qrcode/qrcode.html?arg="
;
public
static
String
PRINT_QRCODE_ADDRESS
=
PRINT_QRCODE_ADDRESS_URL_FORMAL
+
PRINT_QRCODE_SUFFIX
;
//--------------------------------------配置-----------------------------------------------------------------------------------
/**
...
...
@@ -142,6 +152,7 @@ public class HttpsConstans {
RICEPON_MEMBER_SERVER_ADDRESS
=
WECHAR_REPORT_FORMAL_ADDRESS
+
WECHAR_REPORT_PATH
;
SYSTEM_URL
=
HTTP_ADDRESS_URL_FORMAL
+
SYSTEM_PATH
;
ROOT_SERVER
=
HTTP_ADDRESS_URL_FORMAL
;
PRINT_QRCODE_ADDRESS
=
PRINT_QRCODE_ADDRESS_URL_FORMAL
+
PRINT_QRCODE_SUFFIX
;
break
;
case
1
:
RICEPON_MEMBER_61177
=
WECHAR_REPORT_TEST_ADDRESS
+
API_RICEPON_MEMBER
;
...
...
@@ -154,6 +165,7 @@ public class HttpsConstans {
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
;
ROOT_SERVER
=
HTTP_ADDRESS_URL_HK
;
PRINT_QRCODE_ADDRESS
=
PRINT_QRCODE_ADDRESS_URL_HK
+
PRINT_QRCODE_SUFFIX
;
break
;
case
2
:
//預發佈
...
...
@@ -167,6 +179,7 @@ public class HttpsConstans {
WECHAR_REPORT_SERVER_ADDRESS
=
HTTP_ADDRESS_URL_PRE
+
WECHAR_REPORT_PATH
;
SYSTEM_URL
=
HTTP_ADDRESS_URL_PRE
+
SYSTEM_PATH
;
ROOT_SERVER
=
HTTP_ADDRESS_URL_PRE
;
PRINT_QRCODE_ADDRESS
=
PRINT_QRCODE_ADDRESS_URL_FORMAL
+
PRINT_QRCODE_SUFFIX
;
break
;
case
3
:
RICEPON_MEMBER_61177
=
WECHAR_REPORT_TEST_ADDRESS
+
API_RICEPON_MEMBER
;
...
...
@@ -177,6 +190,7 @@ public class HttpsConstans {
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_ZHI_WANG_HK
+
SYSTEM_PATH
;
PRINT_QRCODE_ADDRESS
=
PRINT_QRCODE_ADDRESS_URL_HK
+
PRINT_QRCODE_SUFFIX
;
break
;
case
4
:
RICEPON_MEMBER_61177
=
WECHAR_REPORT_TEST_ADDRESS
+
API_RICEPON_MEMBER
;
...
...
@@ -187,6 +201,7 @@ public class HttpsConstans {
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
;
PRINT_QRCODE_ADDRESS
=
PRINT_QRCODE_ADDRESS_URL_HK
+
PRINT_QRCODE_SUFFIX
;
break
;
case
5
:
RICEPON_MEMBER_61177
=
WECHAR_REPORT_TEST_ADDRESS
+
API_RICEPON_MEMBER
;
...
...
@@ -197,6 +212,7 @@ public class HttpsConstans {
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
;
PRINT_QRCODE_ADDRESS
=
PRINT_QRCODE_ADDRESS_URL_HK
+
PRINT_QRCODE_SUFFIX
;
break
;
}
ricepon_wechat
=
HttpsConstans
.
ROOT_URL
+
HttpsConstans
.
URL_RICEPON_WECHAT
;
...
...
base-module/src/main/java/com/gingersoft/gsa/cloud/logan/LoganUtils.java
0 → 100644
View file @
c4e6855d
package
com
.
gingersoft
.
gsa
.
cloud
.
logan
;
import
android.content.Context
;
import
android.os.Handler
;
import
android.os.Looper
;
import
android.util.Log
;
import
com.dianping.logan.Logan
;
import
com.dianping.logan.SendLogCallback
;
import
com.gingersoft.gsa.cloud.app.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.base.BuildConfig
;
import
com.gingersoft.gsa.cloud.base.utils.log.LogUtil
;
import
com.gingersoft.gsa.cloud.base.utils.time.TimeUtils
;
import
com.gingersoft.gsa.cloud.config.LoganConfig
;
import
com.jess.arms.utils.ArmsUtils
;
import
com.jess.arms.utils.DeviceUtils
;
/**
* @author : bin
* @create date: 2020-11-21
* @update date: 2020-11-21
* @description:
*/
public
class
LoganUtils
{
private
static
final
String
TAG
=
LoganUtils
.
class
.
getSimpleName
();
/**
* 上傳日誌到服務器
*/
public
static
void
uploadLog
(
Context
context
,
boolean
showToast
)
{
String
memberId
=
GsaCloudApplication
.
getMemberName
()
+
"_"
+
GsaCloudApplication
.
getMemberId
();
String
deviceId
=
DeviceUtils
.
getIMEI
(
GsaCloudApplication
.
getAppContext
())
!=
null
?
DeviceUtils
.
getIMEI
(
GsaCloudApplication
.
getAppContext
())
:
"redmi"
;
String
AppVersion
=
DeviceUtils
.
getVersionName
(
GsaCloudApplication
.
getAppContext
())
+
"_"
+
DeviceUtils
.
getVersionCode
(
GsaCloudApplication
.
getAppContext
());
String
BuildVersion
=
android
.
os
.
Build
.
VERSION
.
RELEASE
+
""
;
Logan
.
s
(
LoganConfig
.
UPLOAD_LOG_URL
,
TimeUtils
.
getCurrentDate
(
TimeUtils
.
DATE_FORMAT_DATE
),
LoganConfig
.
APP_ID
,
memberId
,
deviceId
,
BuildVersion
,
AppVersion
,
new
SendLogCallback
()
{
@Override
public
void
onLogSendCompleted
(
int
statusCode
,
byte
[]
data
)
{
final
String
resultData
=
data
!=
null
?
new
String
(
data
)
:
""
;
new
Handler
(
Looper
.
getMainLooper
()).
post
(
new
Runnable
()
{
@Override
public
void
run
()
{
if
(
BuildConfig
.
DEBUG
&&
showToast
)
{
if
(
statusCode
==
200
)
{
ArmsUtils
.
makeText
(
context
,
"日誌上傳成功"
);
}
else
{
ArmsUtils
.
makeText
(
context
,
"日誌上傳失敗"
);
}
}
}
});
Log
.
d
(
TAG
,
"upload result, httpCode: "
+
statusCode
+
", details: "
+
resultData
);
}
});
}
public
static
void
w_code
(
String
log
)
{
Logan
.
w
(
log
,
LoganConfig
.
CODE_LEVLE
);
printLog
(
log
);
}
public
static
void
w_action
(
String
log
)
{
Logan
.
w
(
log
,
LoganConfig
.
ACTION_LEVLE
);
}
public
static
void
w_network
(
String
log
)
{
Logan
.
w
(
log
,
LoganConfig
.
NETWORK_LEVLE
);
//網絡日誌比較重要立即寫入本地
// Logan.f();
printLog
(
log
);
}
public
static
void
w_crash
(
String
log
)
{
Logan
.
w
(
log
,
LoganConfig
.
CRASH_LEVLE
);
//cash日誌比較重要立即寫入本地
Logan
.
f
();
printLog
(
log
);
}
public
static
void
w_H5
(
String
log
)
{
Logan
.
w
(
log
,
LoganConfig
.
H5_LEVLE
);
}
public
static
void
w_native
(
String
log
)
{
Logan
.
w
(
log
,
LoganConfig
.
native_LEVLE
);
}
private
static
void
printLog
(
String
log
)
{
if
(
BuildConfig
.
DEBUG
)
{
// LogUtil.d(log);
}
}
}
base-module/src/main/java/com/gingersoft/gsa/cloud/menu/Menu.java
deleted
100644 → 0
View file @
f99df214
package
com
.
gingersoft
.
gsa
.
cloud
.
menu
;
/**
* @author : bin
* @create date: 2020-11-03
* @update date: 2020-11-03
* @description:
*/
public
interface
Menu
{
}
base-module/src/main/java/com/gingersoft/gsa/cloud/ui/view/OrderPayView.java
View file @
c4e6855d
...
...
@@ -141,7 +141,7 @@ public class OrderPayView extends LinearLayout {
double
paymentDifference
=
getPaymentDifference
();
if
(!
addPayMethodCondtion
(
method
,
paymentDifference
))
{
if
(!
addPayMethodCondtion
(
method
,
paymentDifference
))
{
return
;
}
...
...
@@ -188,7 +188,7 @@ public class OrderPayView extends LinearLayout {
int
notifyPosition
=
mBillMoneyList
.
size
()
-
1
;
mBillMoneyAdapter
.
setSelect_position
(
notifyPosition
);
mBillMoneyAdapter
.
notify
ItemChanged
(
notifyPosition
);
mBillMoneyAdapter
.
notify
DataSetChanged
(
);
rv_bill_money
.
scrollToPosition
(
notifyPosition
);
//設置差額狀態
...
...
@@ -232,10 +232,14 @@ public class OrderPayView extends LinearLayout {
//Exact
view
.
findViewById
(
R
.
id
.
btn_exact
).
setOnClickListener
(
v
->
{
if
(
getSelectBillMoney
()
==
null
)
{
PayMethod
selectPayMethod
=
getSelectBillMoney
();
if
(
selectPayMethod
==
null
)
{
ToastUtils
.
show
(
context
,
"請選擇支付方式"
);
return
;
}
boolean
useFreeServicePayMethod
=
isUseFreeServicePayMethod
(
selectPayMethod
);
setWhetherFreeServiceCallback
(
useFreeServicePayMethod
);
pressExact
();
setDifferenceText
(
context
);
});
...
...
@@ -271,7 +275,7 @@ public class OrderPayView extends LinearLayout {
this
.
addView
(
view
);
}
private
boolean
addPayMethodCondtion
(
PayMethod
method
,
double
paymentDifference
)
{
private
boolean
addPayMethodCondtion
(
PayMethod
method
,
double
paymentDifference
)
{
boolean
isIntegralPayMethod
=
isIntegralPayMethod
(
method
);
if
(
isIntegralPayMethod
)
{
//積分支付
...
...
@@ -551,7 +555,7 @@ public class OrderPayView extends LinearLayout {
* @param payMethod
* @param memberIntegral 會員積分
* @param memberPointRedeemCash 積分兌換現金比率
* @param paymentDifference
還差多少錢
* @param paymentDifference 還差多少錢
* @param addPayMethod 新增積分支付
* @return
*/
...
...
@@ -673,7 +677,7 @@ public class OrderPayView extends LinearLayout {
tv_total
.
setText
(
"$"
+
totalAmount
);
}
public
void
updateOrderPay
(
double
totalAmount
){
public
void
updateOrderPay
(
double
totalAmount
)
{
setTotalAmount
(
totalAmount
);
initOrderDetail
();
setDifferenceText
(
GsaCloudApplication
.
getAppContext
());
...
...
base-module/src/main/res/layout/layout_order_pay.xml
View file @
c4e6855d
...
...
@@ -44,7 +44,6 @@
android:visibility=
"invisible"
/>
</FrameLayout>
<TextView
android:id=
"@+id/tv_total_text"
android:layout_width=
"wrap_content"
...
...
@@ -58,7 +57,6 @@
android:textSize=
"@dimen/sp_22"
android:textStyle=
"bold"
android:visibility=
"visible"
/>
</LinearLayout>
<TextView
...
...
delivery_pick_module/src/main/java/com/gingersoft/gsa/delivery_pick_mode/data/network/ServiceCreator.kt
View file @
c4e6855d
package
com.gingersoft.gsa.delivery_pick_mode.data.network
import
android.util.Log
import
com.gingersoft.gsa.cloud.app.GsaCloudApplication
import
com.gingersoft.gsa.cloud.base.utils.encryption.Aes
import
com.gingersoft.gsa.cloud.config.globalconfig.applyOptions.intercept.HeadersInterceptor
import
com.gingersoft.gsa.cloud.config.globalconfig.applyOptions.intercept.LoggingInterceptor
import
com.gingersoft.gsa.cloud.constans.AppConstans
import
com.gingersoft.gsa.cloud.constans.HttpsConstans
import
com.gingersoft.gsa.cloud.constans.HttpsConstans.ROOT_SERVER
import
com.gingersoft.gsa.cloud.constans.HttpsConstans.URK_RICEPON_GSA
import
com.jess.arms.utils.DeviceUtils
import
okhttp3.Headers
import
okhttp3.Interceptor
import
okhttp3.OkHttpClient
import
okhttp3.Response
import
retrofit2.Retrofit
import
retrofit2.converter.gson.GsonConverterFactory
import
retrofit2.converter.scalars.ScalarsConverterFactory
...
...
@@ -26,7 +19,7 @@ object ServiceCreator {
.
readTimeout
(
30
,
TimeUnit
.
SECONDS
)
.
writeTimeout
(
30
,
TimeUnit
.
SECONDS
)
.
addInterceptor
(
LoggingInterceptor
())
.
addInterceptor
(
UserAgentIntercepte
r
())
.
addInterceptor
(
HeadersIntercepto
r
())
private
lateinit
var
builder
:
Retrofit
.
Builder
private
lateinit
var
builder2
:
Retrofit
.
Builder
...
...
@@ -110,32 +103,32 @@ object ServiceCreator {
/**
* 添加请求头
*/
class
UserAgentIntercepter
:
Interceptor
{
override
fun
intercept
(
chain
:
Interceptor
.
Chain
):
Response
{
val
request
=
chain
.
request
()
val
headers
=
request
.
headers
()
val
builder
=
Headers
.
Builder
()
for
(
i
in
0
until
headers
.
size
())
{
builder
.
set
(
headers
.
name
(
i
),
headers
.
value
(
i
))
}
builder
.
set
(
"mobileVersion"
,
android
.
os
.
Build
.
VERSION
.
RELEASE
)
//set表示name1是唯一的,会覆盖掉已经存在的,add不会覆盖已经存在的头,可以存在多个
builder
.
set
(
"mobielModel"
,
android
.
os
.
Build
.
MODEL
)
builder
.
set
(
"apptype"
,
AppConstans
.
APP_TYPE
)
builder
.
set
(
"appinfo"
,
DeviceUtils
.
getVersionName
(
GsaCloudApplication
.
getAppContext
()))
builder
.
set
(
"mobileId"
,
"1"
)
if
(
GsaCloudApplication
.
isLogin
)
{
var
token
:
String
val
memberId
=
GsaCloudApplication
.
getMemberId
()
val
loginToken
=
GsaCloudApplication
.
getLoginToken
()
token
=
Aes
.
aesEncrypt
(
"9_"
+
memberId
+
"_"
+
System
.
currentTimeMillis
()
+
"_"
+
loginToken
)
token
=
token
.
replace
(
"\r|\n"
.
toRegex
(),
""
)
builder
.
set
(
"token"
,
token
)
}
val
request1
=
chain
.
request
().
newBuilder
().
headers
(
builder
.
build
()).
build
()
return
chain
.
proceed
(
request1
)
}
}
//
class UserAgentIntercepter : Interceptor {
//
override fun intercept(chain: Interceptor.Chain): Response {
//
val request = chain.request()
//
val headers = request.headers()
//
//
val builder = Headers.Builder()
//
for (i in 0 until headers.size()) {
//
builder.set(headers.name(i), headers.value(i))
//
}
//
//
builder.set("mobileVersion", android.os.Build.VERSION.RELEASE)//set表示name1是唯一的,会覆盖掉已经存在的,add不会覆盖已经存在的头,可以存在多个
//
builder.set("mobielModel", android.os.Build.MODEL)
//
builder.set("apptype", AppConstans.APP_TYPE)
//
builder.set("appinfo", DeviceUtils.getVersionName(GsaCloudApplication.getAppContext()))
//
builder.set("mobileId", "1")
//
//
if (GsaCloudApplication.isLogin) {
//
var token: String
//
val memberId = GsaCloudApplication.getMemberId()
//
val loginToken = GsaCloudApplication.getLoginToken()
//
token = Aes.aesEncrypt("9_" + memberId + "_" + System.currentTimeMillis() + "_" + loginToken)
//
token = token.replace("\r|\n".toRegex(), "")
//
builder.set("token", token)
//
}
//
val request1 = chain.request().newBuilder().headers(builder.build()).build()
//
return chain.proceed(request1)
//
}
//
}
}
\ No newline at end of file
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/contract/LoginInterfaceImpl.java
View file @
c4e6855d
...
...
@@ -14,7 +14,7 @@ import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
import
com.gingersoft.gsa.cloud.base.utils.RestaurantInfoUtils
;
import
com.gingersoft.gsa.cloud.base.utils.other.SPUtils
;
import
com.gingersoft.gsa.cloud.base.widget.DialogUtils
;
import
com.gingersoft.gsa.cloud.
constans
.UserConstans
;
import
com.gingersoft.gsa.cloud.
account.user
.UserConstans
;
import
com.gingersoft.gsa.cloud.login.R
;
import
com.gingersoft.gsa.cloud.login.mvp.bean.LoginLimitBean
;
import
com.gingersoft.gsa.cloud.login.mvp.presenter.BaseLoginPresenter
;
...
...
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/ui/activity/mvp/ui/activity/LoginActivity.java
View file @
c4e6855d
...
...
@@ -19,7 +19,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.
constans
.UserConstans
;
import
com.gingersoft.gsa.cloud.
account.user
.UserConstans
;
import
com.gingersoft.gsa.cloud.login.R
;
import
com.gingersoft.gsa.cloud.login.R2
;
import
com.gingersoft.gsa.cloud.login.di.component.DaggerLoginComponent
;
...
...
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/ui/activity/mvp/ui/activity/WelcomeActivity.java
View file @
c4e6855d
...
...
@@ -20,7 +20,7 @@ import androidx.viewpager2.widget.ViewPager2;
import
com.gingersoft.gsa.cloud.app.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.base.utils.encryption.Aes
;
import
com.gingersoft.gsa.cloud.base.utils.other.SPUtils
;
import
com.gingersoft.gsa.cloud.
constans
.UserConstans
;
import
com.gingersoft.gsa.cloud.
account.user
.UserConstans
;
import
com.gingersoft.gsa.cloud.login.R
;
import
com.gingersoft.gsa.cloud.login.R2
;
import
com.gingersoft.gsa.cloud.login.di.component.DaggerWelcomeComponent
;
...
...
order-base/src/main/java/com/gingersoft/gsa/cloud/base/order/cart/ShoppingCart.java
View file @
c4e6855d
...
...
@@ -38,6 +38,7 @@ public class ShoppingCart {
}
return
shoppingCart
;
}
/**
* 外送/自取 的訂單數據
*/
...
...
@@ -271,14 +272,16 @@ public class ShoppingCart {
byte
discountType
=
BillItem
.
NOMAL_DISCOUNT_TYPE
;
for
(
int
i
=
multyDiscountArrays
.
size
()
-
1
;
i
>=
0
;
i
--)
{
MultyDiscount
discount
=
multyDiscountArrays
.
get
(
i
);
String
discountName
=
discount
.
getName
();
if
(
discount
instanceof
NomalDiscount
)
{
discountType
=
BillItem
.
NOMAL_DISCOUNT_TYPE
;
}
else
if
(
discount
instanceof
MemberDiscount
)
{
discountType
=
BillItem
.
MEMBER_DISCOUNT_TYPE
;
discountName
=
discount
.
getName
()
+
((
MemberDiscount
)
discount
).
getMemberDiscount
().
getMemberDiscount
()+
"%"
;
}
else
if
(
discount
instanceof
CouponDiscount
)
{
discountType
=
BillItem
.
COUPON_DISCOUNT_TYPE
;
}
DiscountItem
discountItem
=
new
DiscountItem
(
discount
.
getName
()
,
discount
.
getDiscountMoney
(),
discount
.
getStatus
(),
discountType
);
DiscountItem
discountItem
=
new
DiscountItem
(
discount
Name
,
discount
.
getDiscountMoney
(),
discount
.
getStatus
(),
discountType
);
discountItem
.
setDiscount
(
discount
);
billItemList
.
add
(
discountItem
);
}
...
...
order-base/src/main/java/com/gingersoft/gsa/cloud/base/order/commodity/MealCommodity.java
View file @
c4e6855d
...
...
@@ -426,7 +426,7 @@ public class MealCommodity implements Commodity {
mealCommodity
.
setNumber
(
1
);
mealCommodity
.
setPrice
(
discountPrice
);
mealCommodity
.
setUnit_price
(
discountPrice
);
if
(
BaseOrder
.
is
CurrentOrderType
(
FoodSummaryConstans
.
RESTAURANT_MODE
))
{
if
(
BaseOrder
.
is
TableToMeal
(
))
{
mealCommodity
.
setOrderId
(
DoshokuOrder
.
getInstance
().
getOrderId
());
}
else
{
mealCommodity
.
setOrderId
(
TakeawayOrder
.
getInstance
().
getOrderId
());
...
...
order-base/src/main/java/com/gingersoft/gsa/cloud/base/order/order/BaseOrder.java
View file @
c4e6855d
...
...
@@ -55,6 +55,20 @@ public abstract class BaseOrder {
return
false
;
}
/**
* 是否在餐廳用餐
* @return
*/
public
static
boolean
isTableToMeal
()
{
/**
* 餐檯模式,skyorder到餐廳用餐
*/
if
(
orderType
==
FoodSummaryConstans
.
RESTAURANT_MODE
||
orderType
==
FoodSummaryConstans
.
SKYORDER
)
{
return
true
;
}
return
false
;
}
protected
void
initialization
()
{
orderType
=
FoodSummaryConstans
.
RESTAURANT_MODE
;
...
...
print-module/src/main/java/com/joe/print/mvp/print/PrintBill.java
View file @
c4e6855d
...
...
@@ -44,7 +44,6 @@ public class PrintBill extends PrinterRoot {
DoshokuOrder
doshokuOrder
=
DoshokuOrder
.
getInstance
();
ShoppingCart
shoppingCart
=
doshokuOrder
.
getShoppingCart
();
List
<
OrderDetail
>
foodList
=
shoppingCart
.
getOrderCommodityList
();
TableBean
.
DataBean
tableBean
=
doshokuOrder
.
getOpenTableInfo
();
...
...
print-module/src/main/java/com/joe/print/mvp/print/PrinterRoot.java
View file @
c4e6855d
...
...
@@ -51,6 +51,7 @@ import com.gingersoft.gsa.cloud.print.PrinterWriter58mm;
import
com.gingersoft.gsa.cloud.print.bean.OrderDetails
;
import
com.gingersoft.gsa.cloud.print.bean.PrintContent
;
import
com.gingersoft.gsa.cloud.print.bean.PrintQRCodeContent
;
import
com.google.zxing.WriterException
;
import
com.hyweb.n5.lib.constant.PrinterConstant
;
import
com.hyweb.n5.lib.util.PrinterUtil
;
import
com.hyweb.n5.server.aidl.IOnPrintCallback
;
...
...
@@ -621,7 +622,12 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
llIntegralQrcode
.
setVisibility
(
View
.
GONE
);
}
else
{
llIntegralQrcode
.
setVisibility
(
View
.
VISIBLE
);
Bitmap
QRImage
=
QRCodeUtil
.
createQRImage
(
integralQrcode
,
180
,
180
);
Bitmap
QRImage
=
null
;
try
{
QRImage
=
QRCodeUtil
.
makeQRImage
(
integralQrcode
,
220
,
220
);
}
catch
(
WriterException
e
)
{
e
.
printStackTrace
();
}
ivIntegralQrcode
.
setImageBitmap
(
QRImage
);
}
return
view
;
...
...
print-module/src/main/res/layout/print_model_meal_member_integer_info.xml
View file @
c4e6855d
...
...
@@ -76,8 +76,8 @@
<ImageView
android:id=
"@+id/iv_integral_qrcode"
android:layout_width=
"@dimen/dp_2
5
0"
android:layout_height=
"@dimen/dp_2
5
0"
android:layout_width=
"@dimen/dp_2
2
0"
android:layout_height=
"@dimen/dp_2
2
0"
android:layout_marginTop=
"@dimen/dp_5"
/>
<TextView
...
...
table-base/src/main/java/com/gingersoft/gsa/cloud/base/table/bean/TableBean.java
View file @
c4e6855d
...
...
@@ -82,6 +82,7 @@ public class TableBean {
* maxSeatCount : 8
* SplitStatus : 0
* skyQRCode:
* scanId : 1117359
*/
private
int
id
;
...
...
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/discount/MealDiscountAction.java
View file @
c4e6855d
...
...
@@ -49,6 +49,11 @@ public class MealDiscountAction implements Strategy<Discount> {
return
;
}
double
mixTotalAomout
=
getMixTotalAomout
(
mSelectMixOrderMealList
);
if
(
discount
.
getType
()
==
0
&&
discount
.
getAmount
()
>
mixTotalAomout
){
//金額折扣總額不能超過 食品總金額
ArmsUtils
.
makeText
(
mContext
,
"折扣金額不可以超過食品總金額!"
);
return
;
}
if
(
discount
.
getMinBillAmount
()
>
mixTotalAomout
)
{
//最小賬單金額
ArmsUtils
.
makeText
(
mContext
,
"小於最小賬單金額$"
+
discount
.
getMinBillAmount
()
+
" 無法使用此折扣"
);
...
...
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/table/action/PrintSkyorderAction.java
View file @
c4e6855d
...
...
@@ -103,7 +103,7 @@ public class PrintSkyorderAction extends TableAction {
String
printBottomInfo
=
GsaCloudApplication
.
functionConfiguration
.
getSkyQRCodePrintBottomInfoVaule
();
String
QR
=
"\""
+
printQRCodeResponse
.
getQrcode
()
+
"\""
;
String
QRCodeContent
=
HttpsConstans
.
PRINT_QRCODE_ADDRESS
+
"{\"type\":"
+
PRINT_type
+
",\"QR\":"
+
QR
+
"}"
;
String
QRCodeContent
=
HttpsConstans
.
PRINT_
SKY_
QRCODE_ADDRESS
+
"{\"type\":"
+
PRINT_type
+
",\"QR\":"
+
QR
+
"}"
;
QRCodeContent
=
QRCodeContent
.
replace
(
"WMP0"
,
"WMP"
+
printQRCodeResponse
.
getIsWeChatMiniProgram
());
PrintQRCodeContent
printQRCodeBean
=
new
PrintQRCodeContent
();
...
...
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/BaseOrderPresenter.java
View file @
c4e6855d
...
...
@@ -34,10 +34,12 @@ import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.AddOrderRequest;
import
com.gingersoft.gsa.cloud.table.mvp.model.bean.request.CreateOrderRequest
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.activity.OrderContentActivity
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.activity.OrderPayActivity
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.BillItemAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.SelectMealAdapter
;
import
com.gingersoft.gsa.cloud.constans.ExpandConstant
;
import
com.gingersoft.gsa.cloud.database.bean.Discount
;
import
com.gingersoft.gsa.cloud.ui.view.OrderPayView
;
import
com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog
;
import
com.gingersoft.gsa.cloud.zxing.MipcaCaptureActivity
;
import
com.jess.arms.di.scope.ActivityScope
;
...
...
@@ -176,7 +178,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
}
BaseOrder
baseOrder
=
OrderFactory
.
createOrder
(
BaseOrder
.
orderType
);
if
(
BaseOrder
.
is
CurrentOrderType
(
FoodSummaryConstans
.
RESTAURANT_MODE
))
{
if
(
BaseOrder
.
is
TableToMeal
(
))
{
mDoshokuOrder
=
(
DoshokuOrder
)
baseOrder
;
mTableInfo
=
mDoshokuOrder
.
getOpenTableInfo
();
}
else
{
...
...
@@ -251,6 +253,10 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
});
}
public
void
updateBillInfo
()
{
updateBillInfo
(
null
);
}
/**
* 更新賬單信息
* 1、更新食品折扣
...
...
@@ -261,7 +267,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
* 6、更新賬單小數項
* 7、總金額
*/
public
void
updateBillInfo
()
{
public
void
updateBillInfo
(
UpdateBillInfoEndListener
updateBillInfoEndListener
)
{
mShoppingCart
.
resetBeforeBillCalculation
();
//更新食品折扣
...
...
@@ -371,16 +377,20 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
(
new
Consumer
<
Double
>()
{
@Override
public
void
accept
(
Double
totalAmount
)
throws
Exception
{
if
(
mOrderContentActivity
!=
null
)
{
mOrderContentActivity
.
initOrderBill
(
wholeAmount
,
totalAmount
);
}
public
void
accept
(
Double
totalAmount
)
{
//更新總金額
mShoppingCart
.
setTotalAmount
(
totalAmount
);
//刷新美食Item數據
mSelectMealAdapter
.
notifyDataSetChanged
();
//刷新賬單Item數據
mBillItemAdapter
.
notifyDataSetChanged
();
//刷新美食Item數據
mSelectMealAdapter
.
notifyDataSetChanged
();
if
(
mOrderContentActivity
!=
null
)
{
mOrderContentActivity
.
initOrderBill
(
wholeAmount
,
totalAmount
);
}
if
(
updateBillInfoEndListener
!=
null
)
{
updateBillInfoEndListener
.
onUpdateEnd
();
}
}
});
}
...
...
@@ -779,7 +789,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
double
foodTotal
=
getFoodTotal
();
for
(
BillItem
item
:
mBillItemList
)
{
if
(!
filterType
(
item
.
getType
(),
filterTypes
))
{
if
(
item
.
getType
()
==
BillItem
.
SERVERCHARGE_TYPE
&&
mBillItemAdapter
.
getFreeServiceStauts
())
{
if
(
item
instanceof
ServiceChargeItem
&&
mBillItemAdapter
.
getFreeServiceStauts
())
{
//TODO 免服務費
}
else
{
foodTotal
=
MoneyUtil
.
sum
(
foodTotal
,
item
.
getMoney
());
...
...
@@ -813,7 +823,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
public
double
getTotalAmount
()
{
double
foodTotal
=
getFoodTotal
();
for
(
BillItem
item
:
mBillItemList
)
{
if
(
item
.
getType
()
==
BillItem
.
SERVERCHARGE_TYPE
&&
mBillItemAdapter
.
getFreeServiceStauts
())
{
if
(
item
instanceof
ServiceChargeItem
&&
mBillItemAdapter
.
getFreeServiceStauts
())
{
//TODO 免服務費
}
else
{
foodTotal
=
MoneyUtil
.
sum
(
foodTotal
,
item
.
getMoney
());
...
...
@@ -836,7 +846,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
*/
protected
Double
getRounding
()
{
for
(
BillItem
item
:
mBillItemList
)
{
if
(
item
.
getType
()
==
BillItem
.
ROUNDING_TYPE
)
{
if
(
item
instanceof
RoundingItem
)
{
return
item
.
getMoney
();
}
}
...
...
@@ -941,7 +951,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
setChildScAbleByMainAble
(
newFoodList
);
setChildDiscountByMainAblediscount
(
newFoodList
);
TableBean
.
DataBean
tableBean
=
mDoshokuOrder
.
getOpenTableInfo
();
TableBean
.
DataBean
tableBean
=
mDoshokuOrder
.
getOpenTableInfo
();
int
restaurantId
=
GsaCloudApplication
.
getRestaurantId
();
CreateOrderRequest
request
=
new
CreateOrderRequest
();
...
...
@@ -1405,12 +1415,12 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
});
}
public
DoshokuOrder
getDoshokuOrder
()
{
return
mDoshokuOrder
;
}
public
ShoppingCart
getShoppingCart
()
{
return
mShoppingCart
;
}
public
interface
UpdateBillInfoEndListener
{
void
onUpdateEnd
();
}
}
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/MealStandPresenter.java
View file @
c4e6855d
...
...
@@ -153,7 +153,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
//獨佔折扣刪除其他折扣
int
start_position
=
mSelectMealAdapter
.
getSelect_full_start_position
();
int
end_position
=
mSelectMealAdapter
.
getSelect_full_end_position
();
for
(
int
i
=
0
;
i
<
mOrderMealList
.
size
();
i
++
)
{
for
(
int
i
=
mOrderMealList
.
size
()
-
1
;
i
>=
0
;
i
--
)
{
if
(
start_position
<=
i
&&
i
<=
end_position
)
{
OrderDetail
orderMealItem
=
mOrderMealList
.
get
(
i
);
if
(
orderMealItem
.
getDiscount
()
!=
null
)
{
...
...
@@ -992,11 +992,6 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
mRootView
.
showMessage
(
info
.
getErrMsg
());
}
}
@Override
public
void
onError
(
Throwable
t
)
{
super
.
onError
(
t
);
}
});
}
...
...
@@ -1670,26 +1665,6 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
}
}
public
Food
getFoodByFid
(
long
fid
)
{
for
(
int
i
=
0
;
i
<
mFoodList
.
size
();
i
++)
{
Food
foodBean
=
mFoodList
.
get
(
i
);
if
(
fid
==
foodBean
.
getId
())
{
return
foodBean
;
}
}
return
null
;
}
public
Modifier
getModifierByMid
(
long
mid
)
{
for
(
int
i
=
0
;
i
<
mModifierList
.
size
();
i
++)
{
Modifier
modifier
=
mModifierList
.
get
(
i
);
if
(
mid
==
modifier
.
getMid
())
{
return
modifier
;
}
}
return
null
;
}
/**
* 標識食品是否为组合食品
*
...
...
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/OrderContentPresenter.java
View file @
c4e6855d
...
...
@@ -257,7 +257,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
if
(
mFunctionList
.
size
()
>
0
)
{
mFunctionList
.
clear
();
}
if
(
BaseOrder
.
is
CurrentOrderType
(
FoodSummaryConstans
.
RESTAURANT_MODE
))
{
if
(
BaseOrder
.
is
TableToMeal
(
))
{
if
(
mDoshokuOrder
.
isModifyOrder
())
{
//修改訂單隱藏送單,印單功能
mFunctionList
.
add
(
new
Function
(
"結賬"
,
Color
.
parseColor
(
"#FFFFFF"
),
Color
.
parseColor
(
"#DC0000"
),
24
));
...
...
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/OrderPayPresenter.java
View file @
c4e6855d
...
...
@@ -13,6 +13,7 @@ import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
import
com.gingersoft.gsa.cloud.base.utils.MoneyUtil
;
import
com.gingersoft.gsa.cloud.base.utils.gson.GsonUtils
;
import
com.gingersoft.gsa.cloud.constans.FoodSummaryConstans
;
import
com.gingersoft.gsa.cloud.constans.HttpsConstans
;
import
com.gingersoft.gsa.cloud.table.BuildConfig
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.OrderPayContract
;
import
com.gingersoft.gsa.cloud.table.mvp.model.bean.response.OrderPayResponse
;
...
...
@@ -177,7 +178,7 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
mDoshokuOrder
.
setOldPoints
(
orderPayRespose
.
getOldPoints
());
}
else
{
if
(!
TextUtils
.
isEmpty
(
orderPayRespose
.
getVerifyCode
()))
{
mDoshokuOrder
.
setIntegralQrcode
(
orderPayRespose
.
getVerifyCode
());
mDoshokuOrder
.
setIntegralQrcode
(
HttpsConstans
.
PRINT_QRCODE_ADDRESS
+
orderPayRespose
.
getVerifyCode
());
}
}
}
...
...
@@ -288,14 +289,18 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
}
public
void
setFreeServiceStauts
(
boolean
useFreeServicePayMethod
)
{
OrderPayView
orderPayView
=
IActivity
.
getGsaPayView
();
if
(
orderPayView
!=
null
)
{
orderPayView
.
updateOrderPay
(
getTotalAmount
());
}
//更新服務費中劃線
mBillItemAdapter
.
setFreeServiceStauts
(
useFreeServicePayMethod
);
//更新總金額
updateBillInfo
();
updateBillInfo
(
new
UpdateBillInfoEndListener
()
{
@Override
public
void
onUpdateEnd
()
{
OrderPayView
orderPayView
=
IActivity
.
getGsaPayView
();
if
(
orderPayView
!=
null
)
{
orderPayView
.
updateOrderPay
(
getTotalAmount
());
}
}
});
}
/**
...
...
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/TablePresenter.java
View file @
c4e6855d
...
...
@@ -13,11 +13,13 @@ import com.gingersoft.gsa.cloud.app.GsaCloudApplication;
import
com.gingersoft.gsa.cloud.base.common.bean.BaseResult
;
import
com.gingersoft.gsa.cloud.base.order.bean.response.OrderResponse
;
import
com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail
;
import
com.gingersoft.gsa.cloud.base.order.order.BaseOrder
;
import
com.gingersoft.gsa.cloud.base.order.order.DoshokuOrder
;
import
com.gingersoft.gsa.cloud.base.table.bean.TableBean
;
import
com.gingersoft.gsa.cloud.base.table.bean.TableExtBean
;
import
com.gingersoft.gsa.cloud.base.utils.JsonUtils
;
import
com.gingersoft.gsa.cloud.base.utils.other.SPUtils
;
import
com.gingersoft.gsa.cloud.constans.FoodSummaryConstans
;
import
com.gingersoft.gsa.cloud.table.ComponentTable
;
import
com.gingersoft.gsa.cloud.table.R
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.TableContract
;
...
...
@@ -121,6 +123,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
private
String
originalTableName
=
""
;
private
long
originalTableId
;
private
String
originalTableNumber
=
""
;
private
long
originalScanId
;
/**
* 转台需要转到台名、id、分檯編號
*/
...
...
@@ -429,6 +432,11 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
}
doshokuOrder
.
setOpenTableInfo
(
openTableBean
);
if
(
openTableBean
.
getScanId
()
!=
null
)
{
BaseOrder
.
orderType
=
FoodSummaryConstans
.
SKYORDER
;
}
else
{
BaseOrder
.
orderType
=
FoodSummaryConstans
.
RESTAURANT_MODE
;
}
mRootView
.
startMealStandActivity
();
}
else
{
CommonTipDialog
.
showSurpisedDialog
(
IActivity
,
respose
.
getErrMsg
(),
null
,
null
,
null
,
null
,
null
);
...
...
@@ -530,6 +538,9 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
originalTableName
=
tableBean
.
getTableName
();
originalTableId
=
tableBean
.
getId
();
originalTableNumber
=
tableBean
.
getTableNumber
();
if
(
tableBean
.
getScanId
()
!=
null
)
{
originalScanId
=
tableBean
.
getScanId
().
longValue
();
}
mRootView
.
setTableActionContentText
(
"由: "
+
originalTableName
+
" 轉到 "
);
}
else
{
if
(
tableBean
.
getUseStatus
()
==
1
)
{
...
...
@@ -554,13 +565,14 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
});
}
public
void
turnTable
(
long
originalTableId
,
long
targetTableId
,
String
tableNumber
,
String
targetTableNumber
,
boolean
isMergeTable
)
{
public
void
turnTable
(
long
originalTableId
,
long
targetTableId
,
String
tableNumber
,
String
targetTableNumber
,
long
originalScanId
,
boolean
isMergeTable
)
{
RequestBody
requestBody
=
new
FormBody
.
Builder
()
.
add
(
"id"
,
String
.
valueOf
(
originalTableId
))
.
add
(
"tableId"
,
String
.
valueOf
(
targetTableId
))
.
add
(
"tableNumber"
,
tableNumber
)
.
add
(
"targetTableNumber"
,
targetTableNumber
)
.
add
(
"scanId"
,
String
.
valueOf
(
originalScanId
))
.
build
();
mModel
.
turnTable
(
requestBody
)
...
...
@@ -866,7 +878,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
@Override
public
void
onClick
(
QMUIDialog
dialog
,
int
index
)
{
dialog
.
dismiss
();
turnTable
(
originalTableId
,
targetTableId
,
originalTableNumber
,
targetTableNumber
,
finalIsMergeTable
);
turnTable
(
originalTableId
,
targetTableId
,
originalTableNumber
,
targetTableNumber
,
originalScanId
,
finalIsMergeTable
);
}
});
dialogBuilder
.
addAction
(
"取消"
,
new
QMUIDialogAction
.
ActionListener
()
{
...
...
@@ -915,7 +927,6 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
*/
public
boolean
doTableAction
(
TableBean
.
DataBean
dataBean
)
{
if
(
mTableAction
!=
null
)
{
mTableAction
.
action
(
dataBean
);
mTableAction
.
setActionListener
(
new
TableAction
.
OnActionListener
()
{
@Override
...
...
@@ -966,6 +977,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
mRootView
.
canceTableAction
();
}
});
mTableAction
.
action
(
dataBean
);
return
true
;
}
return
false
;
...
...
@@ -978,6 +990,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
originalTableName
=
""
;
originalTableId
=
0
;
originalTableNumber
=
""
;
originalScanId
=
0
;
targetTableName
=
""
;
targetTableId
=
0
;
targetTableNumber
=
""
;
...
...
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/MealStandActivity.java
View file @
c4e6855d
This diff is collapsed.
Click to expand it.
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/OrderContentActivity.java
View file @
c4e6855d
...
...
@@ -195,9 +195,9 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
mPresenter
.
initTopFunctionData
();
mPresenter
.
initAdapter
();
mPresenter
.
initItemListener
();
initTopInfo
(
BaseOrder
.
orderType
);
initTopInfo
();
initOrderBill
(
mPresenter
.
getFoodTotal
(),
mPresenter
.
getTotalAmount
());
if
(
BaseOrder
.
is
CurrentOrderType
(
FoodSummaryConstans
.
RESTAURANT_MODE
)
&&
!
DoshokuOrder
.
getInstance
().
isModifyOrder
())
{
if
(
BaseOrder
.
is
TableToMeal
(
)
&&
!
DoshokuOrder
.
getInstance
().
isModifyOrder
())
{
//根据倒计时时间自动退出当前页面
initAutoQuit
();
}
...
...
@@ -215,8 +215,13 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
tv_total
.
setText
(
"$"
+
totalAmount
);
}
private
void
initTopInfo
(
int
orderType
)
{
if
(
orderType
==
FoodSummaryConstans
.
RESTAURANT_MODE
)
{
private
void
initTopInfo
()
{
if
(
BaseOrder
.
isCurrentOrderType
(
FoodSummaryConstans
.
TAKEAWAY_TYPE
))
{
btn_table
.
setText
(
"外賣"
);
btn_people_num
.
setText
(
"1"
);
tv_time
.
setText
(
"時間:"
+
TimeUtils
.
getCurrentDate
(
TimeUtils
.
DATE_FORMAT_DATE_HM
));
tv_server_main
.
setText
(
""
);
}
else
{
TableBean
.
DataBean
tableInfo
=
mDoshokuOrder
.
getOpenTableInfo
();
Date
dd
=
mDoshokuOrder
.
getOpenTableTime
();
String
openTime
=
String
.
format
(
"%tH:%tM"
,
dd
,
dd
);
...
...
@@ -230,11 +235,6 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
btn_people_num
.
setText
(
tableInfo
.
getPerson
()
+
""
);
tv_time
.
setText
(
"時間:"
+
openTime
);
tv_server_main
.
setText
(
GsaCloudApplication
.
getMemberName
());
}
else
if
(
orderType
==
FoodSummaryConstans
.
TAKEAWAY_TYPE
)
{
btn_table
.
setText
(
"外賣"
);
btn_people_num
.
setText
(
"1"
);
tv_time
.
setText
(
"時間:"
+
TimeUtils
.
getCurrentDate
(
TimeUtils
.
DATE_FORMAT_DATE_HM
));
tv_server_main
.
setText
(
""
);
}
}
...
...
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/OrderPayActivity.java
View file @
c4e6855d
...
...
@@ -118,13 +118,6 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
context
.
startActivity
(
intent
);
}
public
static
void
startOrderPayActivityFormRefund
(
Context
context
,
String
response
)
{
Intent
intent
=
new
Intent
(
context
,
OrderPayActivity
.
class
);
intent
.
setAction
(
"REFUND_RESP"
);
intent
.
putExtra
(
"REFUND_DATA"
,
response
);
context
.
startActivity
(
intent
);
}
@Override
public
void
setupActivityComponent
(
@NonNull
AppComponent
appComponent
)
{
DaggerOrderPayComponent
//如找不到该类,请编译一下项目
...
...
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/TableActivity.java
View file @
c4e6855d
...
...
@@ -13,10 +13,9 @@ import android.widget.SimpleAdapter;
import
android.widget.TextView
;
import
com.billy.cc.core.component.CC
;
import
com.gingersoft.gsa.cloud.base.order.order.BaseOrder
;
import
com.gingersoft.gsa.cloud.base.table.bean.TableBean
;
import
com.gingersoft.gsa.cloud.base.utils.log.LogUtil
;
import
com.gingersoft.gsa.cloud.
constans.FoodSummaryConstan
s
;
import
com.gingersoft.gsa.cloud.
logan.LoganUtil
s
;
import
com.gingersoft.gsa.cloud.table.R
;
import
com.gingersoft.gsa.cloud.table.R2
;
import
com.gingersoft.gsa.cloud.table.di.component.DaggerTableComponent
;
...
...
@@ -58,7 +57,6 @@ import java.util.Map;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.constraintlayout.widget.ConstraintLayout
;
import
androidx.core.content.ContextCompat
;
import
androidx.fragment.app.Fragment
;
import
androidx.recyclerview.widget.DefaultItemAnimator
;
...
...
@@ -226,6 +224,7 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
.
addParam
(
"fromPage"
,
2
)
.
build
()
.
call
();
LoganUtils
.
uploadLog
(
mContext
,
true
);
}
});
mTopBar
.
setTitle
(
"餐檯模式"
);
...
...
@@ -382,7 +381,6 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
@Override
public
void
startMealStandActivity
()
{
BaseOrder
.
orderType
=
FoodSummaryConstans
.
RESTAURANT_MODE
;
startActivity
(
new
Intent
(
this
,
MealStandActivity
.
class
));
}
...
...
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/adapter/BillItemAdapter.java
View file @
c4e6855d
...
...
@@ -9,6 +9,7 @@ import android.widget.TextView;
import
com.gingersoft.gsa.cloud.base.order.billItem.BillOrderMoney
;
import
com.gingersoft.gsa.cloud.base.order.billItem.BillItem
;
import
com.gingersoft.gsa.cloud.base.order.billItem.ServiceChargeItem
;
import
com.gingersoft.gsa.cloud.table.R
;
import
com.gingersoft.gsa.cloud.table.R2
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.activity.OrderContentActivity
;
...
...
@@ -96,7 +97,7 @@ public class BillItemAdapter extends DefaultAdapter<BillItem> {
tv_money
.
setText
(
cashStr
+
datasBean
.
getMoney
());
}
if
(
datasBean
.
getType
()
==
BillOrderMoney
.
SERVERCHARGE_TYPE
)
{
if
(
datasBean
instanceof
ServiceChargeItem
)
{
if
(
isUseFreeServicePayMethod
)
{
// 中划线
tv_title
.
getPaint
().
setFlags
(
Paint
.
STRIKE_THRU_TEXT_FLAG
|
Paint
.
ANTI_ALIAS_FLAG
);
...
...
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/adapter/TableAdapter.java
View file @
c4e6855d
...
...
@@ -152,8 +152,6 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> {
int
person
=
0
;
if
(
item
.
getPerson
()
!=
0
)
{
person
=
item
.
getPerson
();
}
else
{
person
=
item
.
getSeatCount
();
}
tv_people
.
setVisibility
(
View
.
VISIBLE
);
tv_people
.
setText
(
person
+
"人"
);
...
...
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/adapter/meal/DiscountAdapter.java
View file @
c4e6855d
...
...
@@ -5,7 +5,9 @@ import android.graphics.Color;
import
android.text.TextUtils
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.FrameLayout
;
import
android.widget.TextView
;
import
com.gingersoft.gsa.cloud.app.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.database.bean.Discount
;
import
com.gingersoft.gsa.cloud.table.R
;
...
...
@@ -14,7 +16,9 @@ import com.gingersoft.gsa.cloud.ui.view.BeveLabelView;
import
com.jess.arms.base.BaseHolder
;
import
com.jess.arms.base.DefaultAdapter
;
import
com.jess.arms.utils.ArmsUtils
;
import
java.util.List
;
import
butterknife.BindView
;
/**
...
...
@@ -56,6 +60,8 @@ public class DiscountAdapter extends DefaultAdapter<Discount> {
class
DiscountItemHolder
extends
BaseHolder
<
Discount
>
{
@BindView
(
R2
.
id
.
rl_container
)
FrameLayout
rl_container
;
@BindView
(
R2
.
id
.
tv_name
)
TextView
tv_name
;
@BindView
(
R2
.
id
.
blv_soldout
)
...
...
@@ -92,10 +98,10 @@ public class DiscountAdapter extends DefaultAdapter<Discount> {
private
void
setColor
(
Discount
datasBean
)
{
String
colorRes
=
datasBean
.
getColor
();
if
(!
TextUtils
.
isEmpty
(
colorRes
)
&&
colorRes
.
startsWith
(
"#"
))
{
tv_name
.
setBackgroundColor
(
Color
.
parseColor
(
colorRes
));
rl_container
.
setBackgroundColor
(
Color
.
parseColor
(
colorRes
));
}
else
{
int
color
=
ArmsUtils
.
getColor
(
mContext
,
R
.
color
.
light_blue_900
);
tv_name
.
setBackgroundColor
(
color
);
rl_container
.
setBackgroundColor
(
color
);
}
int
fontColor
=
ArmsUtils
.
getColor
(
mContext
,
R
.
color
.
theme_white_color
);
tv_name
.
setTextColor
(
fontColor
);
...
...
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/adapter/meal/SelectMealAdapter.java
View file @
c4e6855d
...
...
@@ -195,10 +195,20 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
tv_discount_money
.
setVisibility
(
View
.
INVISIBLE
);
if
(
datasBean
.
isModify
())
{
if
(
datasBean
.
getType
()
==
OrderDetail
.
MODIFIER_TYPE
)
{
RelativeLayout
.
LayoutParams
layoutParams
=
(
RelativeLayout
.
LayoutParams
)
tv_number
.
getLayoutParams
();
layoutParams
.
rightMargin
=
ArmsUtils
.
getDimens
(
mContext
,
R
.
dimen
.
dp_15
);
tv_number
.
setLayoutParams
(
layoutParams
);
}
tv_modify_before_number
.
setText
(
String
.
valueOf
(
datasBean
.
getModifyBeforeNumber
()));
tv_modify_before_number
.
setVisibility
(
View
.
VISIBLE
);
}
else
{
tv_modify_before_number
.
setVisibility
(
View
.
INVISIBLE
);
if
(
datasBean
.
getType
()
==
OrderDetail
.
MODIFIER_TYPE
)
{
RelativeLayout
.
LayoutParams
layoutParams
=
(
RelativeLayout
.
LayoutParams
)
tv_number
.
getLayoutParams
();
layoutParams
.
rightMargin
=
0
;
tv_number
.
setLayoutParams
(
layoutParams
);
}
}
}
...
...
@@ -632,8 +642,9 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
* @return
*/
private
boolean
hasChild3Food
(
OrderDetail
orderDetail
)
{
if
(
orderDetail
.
getItemType
()
==
3
)
if
(
orderDetail
.
getItemType
()
==
3
)
{
return
false
;
}
for
(
int
i
=
0
;
i
<
mInfos
.
size
();
i
++)
{
if
(
mInfos
.
get
(
i
).
getItemType
()
==
3
&&
mInfos
.
get
(
i
).
getParentIndex
()
==
orderDetail
.
getMyIndex
())
{
return
true
;
...
...
@@ -643,8 +654,9 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
}
public
boolean
hasChildFood
(
OrderDetail
orderDetail
)
{
if
(
orderDetail
.
getItemType
()
==
3
)
if
(
orderDetail
.
getItemType
()
==
3
)
{
return
false
;
}
for
(
int
i
=
0
;
i
<
mInfos
.
size
();
i
++)
{
if
(
mInfos
.
get
(
i
).
getParentIndex
()
==
orderDetail
.
getMyIndex
())
{
return
true
;
...
...
table-module/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/widget/UseMemberDialog.java
View file @
c4e6855d
...
...
@@ -71,8 +71,6 @@ public class UseMemberDialog extends Dialog {
private
MemberInfoAdapter
mMemberInfoAdapter
;
private
List
<
SectionTextItem
>
mMemberInfoList
;
private
MemberInfo
memberInfo
;
public
UseMemberDialog
(
Context
context
)
{
super
(
context
,
R
.
style
.
QMUI_BottomSheet
);
...
...
@@ -206,7 +204,6 @@ public class UseMemberDialog extends Dialog {
public
UseMemberDialog
build
()
{
View
contentView
=
buildViews
();
setContentView
(
contentView
,
new
LinearLayout
.
LayoutParams
(
ViewGroup
.
LayoutParams
.
MATCH_PARENT
,
(
int
)
(
QMUIDisplayHelper
.
getScreenHeight
(
mContext
)
*
0.65
)));
updateMemberInfo
(
memberInfo
);
return
this
;
}
...
...
@@ -297,7 +294,7 @@ public class UseMemberDialog extends Dialog {
};
}
public
void
update
MemberInfo
(
MemberInfo
memberInfo
)
{
public
void
set
MemberInfo
(
MemberInfo
memberInfo
)
{
if
(
memberInfo
!=
null
)
{
if
(
mMemberInfoList
==
null
)
{
mMemberInfoList
=
new
ArrayList
<>();
...
...
@@ -340,9 +337,6 @@ public class UseMemberDialog extends Dialog {
btn_scan
.
setVisibility
(!
show
?
View
.
VISIBLE
:
View
.
GONE
);
}
public
void
setMemberInfo
(
MemberInfo
memberInfo
)
{
this
.
memberInfo
=
memberInfo
;
}
private
String
getTvPhone
()
{
return
ed_phone
.
getText
().
toString
();
...
...
table-module/src/main/res/layout/meal_item_discount.xml
View file @
c4e6855d
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
<
com.qmuiteam.qmui.alpha.QMUIAlpha
FrameLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:id=
"@+id/rl_container"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
android:layout_height=
"wrap_content"
android:padding=
"@dimen/dp_6"
>
<com.gingersoft.gsa.cloud.ui.view.BeveLabelView
android:id=
"@+id/blv_soldout"
...
...
@@ -20,17 +21,14 @@
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id=
"@+id/tv_name"
android:layout_width=
"
match_par
ent"
android:layout_width=
"
wrap_cont
ent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"1px"
android:layout_marginRight=
"1px"
android:gravity=
"center"
android:padding=
"@dimen/dp_2"
android:text=
"food"
android:textAppearance=
"?android:attr/textAppearanceLarge"
android:textColor=
"@color/theme_white_color"
android:textSize=
"@dimen/sp_16"
/>
</FrameLayout>
</
com.qmuiteam.qmui.alpha.QMUIAlpha
FrameLayout>
table-module/src/main/res/layout/meal_item_select_meal_stand.xml
View file @
c4e6855d
...
...
@@ -183,7 +183,7 @@
android:text=
"30"
android:textColor=
"@color/orange_200"
android:textSize=
"@dimen/sp_16"
android:visibility=
"
gon
e"
/>
android:visibility=
"
visibl
e"
/>
<TextView
android:id=
"@+id/tv_number"
...
...
@@ -194,5 +194,4 @@
android:text=
"20"
android:textColor=
"@color/theme_black"
android:textSize=
"@dimen/sp_20"
/>
</RelativeLayout>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment