Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
Sobot_module_Dev
Project
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
sobot_android
Sobot_module_Dev
Commits
626141c5
Commit
626141c5
authored
Apr 03, 2024
by
zhengnw@sobot.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
common 登录方式调整
parent
73da01cf
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
1223 additions
and
947 deletions
+1223
-947
MainActivity.java
app/src/main/java/com/sobot/moduletest/MainActivity.java
+36
-27
gradle.properties
gradle.properties
+2
-0
SobotLoginTools.java
...src/main/java/com/sobot/common/login/SobotLoginTools.java
+349
-269
FunctionManager.java
.../main/java/com/sobot/common/login/db/FunctionManager.java
+80
-0
LoginUserManager.java
...main/java/com/sobot/common/login/db/LoginUserManager.java
+0
-156
ServiceInfoManager.java
...in/java/com/sobot/common/login/db/ServiceInfoManager.java
+73
-22
SobotCommonDBHelper.java
...n/java/com/sobot/common/login/db/SobotCommonDBHelper.java
+63
-7
LoginUserEntity.java
...in/java/com/sobot/common/login/model/LoginUserEntity.java
+0
-397
OnlineUserEntity.java
...n/java/com/sobot/common/login/model/OnlineUserEntity.java
+174
-0
ServiceFunctionVoModel.java
.../com/sobot/common/login/model/ServiceFunctionVoModel.java
+25
-3
SobotServiceInfoModel.java
...a/com/sobot/common/login/model/SobotServiceInfoModel.java
+309
-50
TokenModel.java
...rc/main/java/com/sobot/common/login/model/TokenModel.java
+73
-0
SobotPermissionManager.java
...sobot/common/login/permission/SobotPermissionManager.java
+38
-15
sobot-widget-publish-mavencentral.gradle
sobot_widget/sobot-widget-publish-mavencentral.gradle
+1
-1
No files found.
app/src/main/java/com/sobot/moduletest/MainActivity.java
View file @
626141c5
...
...
@@ -17,6 +17,9 @@ import com.sobot.album.AlbumFile;
import
com.sobot.album.SobotAlbum
;
import
com.sobot.album.SobotMediaLoader
;
import
com.sobot.album.api.widget.Widget
;
import
com.sobot.common.login.SobotLoginTools
;
import
com.sobot.common.login.callback.SobotResultBlock
;
import
com.sobot.common.login.callback.SobotResultCode
;
import
com.sobot.common.utils.SobotImageUtils
;
import
com.sobot.pictureframe.SobotBitmapUtil
;
import
com.sobot.utils.SobotLogUtils
;
...
...
@@ -65,7 +68,7 @@ public class MainActivity extends SobotBaseActivity {
img2
=
findViewById
(
R
.
id
.
img2
);
// img2.setScaleType(ImageView.ScaleType.FIT_XY);
SobotBitmapUtil
.
display
(
this
,
"https://img.sobot.com/chatres/75574e5fa29a48458d1f57ab5489a4c5/msg/20220421/34a466420d78fa1172bc0acd85166745/9410b53be86b4d589c61c60f6aee2461.jpeg"
,
img2
);
//
SobotBitmapUtil.display(this, "https://img.sobot.com/chatres/75574e5fa29a48458d1f57ab5489a4c5/msg/20220421/34a466420d78fa1172bc0acd85166745/9410b53be86b4d589c61c60f6aee2461.jpeg", img2);
// File save=new File(SobotSDCardUtils.getSDCardRootPath(MainActivity.this)+"/9410b53be86b4d589c61c60f6aee2461.jpeg");
// HttpBaseUtils.getInstance().download("https://img.sobot.com/chatres/75574e5fa29a48458d1f57ab5489a4c5/msg/20220421/34a466420d78fa1172bc0acd85166745/9410b53be86b4d589c61c60f6aee2461.jpeg", save, new HttpBaseUtils.FileCallBack() {
// @Override
...
...
@@ -212,31 +215,37 @@ public class MainActivity extends SobotBaseActivity {
// }
Map
<
String
,
Object
>
map1
=
new
HashMap
<>();
map1
.
put
(
"email"
,
"zhengnw@zhichi.com"
);
map1
.
put
(
"passwd"
,
"znw123456"
);
map1
.
put
(
"loginStatus"
,
"1"
);
map1
.
put
(
"from"
,
2
+
""
);
map1
.
put
(
"way"
,
"10"
);
map1
.
put
(
"ack"
,
"1"
);
Map
<
String
,
String
>
headers1
=
new
HashMap
<>();
headers1
.
put
(
"language"
,
"zh"
);
// SobotLoginTools.getInstance().do
AppLogin(MainActivity.this, getSobotBaseContext(), "https://api-c.sobot.com/text","https://api-c.soboten.com/text", 8000, map1, headers1,"zhengnw@sobot.com","znw123456"
, new SobotResultBlock() {
// SobotLoginTools.getInstance().do
Login(MainActivity.this, getSobotBaseContext(), true, "https://test-branche1.sobot.com/text", "https://test-branche1.sobot.com/text", "zhengnw@zhichi.com", "znw123456", map1
, new SobotResultBlock() {
// @Override
// public void resultBolok(SobotResultCode code, String msg, Object obj) {
// SobotLoginTools.getInstance().checkExpiresToken();
// SobotLogUtils.i(SobotLoginTools.getInstance().getAccessToken()
+
"");
// SobotLogUtils.i(SobotLoginTools.getInstance().getAccessToken()
+
"");
// SobotLogUtils.i(SobotLoginTools.getInstance().getTempId());
// SobotLogUtils.i(SobotLoginTools.getInstance().getToken()
+
"");
//
SobotLoginTools.getInstance().logOut(MainActivity.this, "https://api-c.sobot.com/text", "zhengnw@sobot
.com", new SobotResultBlock() {
// @Override
// public void resultBolok(SobotResultCode code, String msg, Object obj) {
//
// }
// });
// SobotLogUtils.i(SobotLoginTools.getInstance().getToken()
+
"");
//
// SobotLoginTools.getInstance().logOut(MainActivity.this, "https://api-c.sobot.com/text", "zhengnw@zhichi
.com", new SobotResultBlock() {
//
//
@Override
//
//
public void resultBolok(SobotResultCode code, String msg, Object obj) {
//
//
//
//
}
//
//
});
// }
// });
SobotLoginTools
.
getInstance
().
loginWithAppkey
(
MainActivity
.
this
,
getSobotBaseContext
(),
true
,
"https://test-branche1.sobot.com/text"
,
"https://test.sobot.com"
,
"zhengnw@zhichi.com"
,
"UaH4q8JHj708"
,
"615abf5432134e4992d4da2ba6f460db"
,
map1
,
new
SobotResultBlock
()
{
@Override
public
void
resultBolok
(
SobotResultCode
code
,
String
msg
,
Object
obj
)
{
SobotLoginTools
.
getInstance
().
checkExpiresToken
();
SobotLogUtils
.
i
(
SobotLoginTools
.
getInstance
().
getAccessToken
()
+
""
);
SobotLogUtils
.
i
(
SobotLoginTools
.
getInstance
().
getTempId
());
SobotLogUtils
.
i
(
SobotLoginTools
.
getInstance
().
getToken
()
+
""
);
}
});
// LoginUserEntity sa=new LoginUserEntity();
// sa.setLogin_time(System.currentTimeMillis());
...
...
@@ -261,19 +270,19 @@ public class MainActivity extends SobotBaseActivity {
//// 是否隐藏底部工具栏 默认false显示, true 隐藏
// intent.putExtra("isHideToolBar", true);
// startActivity(intent);
permissionListener
=
new
SobotPermissionListenerImpl
()
{
@Override
public
void
onPermissionSuccessListener
()
{
openAlbum
();
}
};
if
(
checkIsShowPermissionPop
(
getString
(
R
.
string
.
sobot_memory_card
),
getString
(
R
.
string
.
sobot_memory_card_yongtu
),
1
,
4
))
{
return
;
}
if
(!
checkStoragePermission
(
4
))
{
return
;
}
openAlbum
();
//
permissionListener = new SobotPermissionListenerImpl() {
//
@Override
//
public void onPermissionSuccessListener() {
//
openAlbum();
//
}
//
};
//
if (checkIsShowPermissionPop(getString(R.string.sobot_memory_card), getString(R.string.sobot_memory_card_yongtu), 1, 4)) {
//
return;
//
}
//
if (!checkStoragePermission(4)) {
//
return;
//
}
//
openAlbum();
}
...
...
gradle.properties
View file @
626141c5
...
...
@@ -16,3 +16,4 @@ org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
# AndroidX package structure to make it clearer which packages are bundled with the
# Android operating system, and which are packaged with your app"s APK
# https://developer.android.com/topic/libraries/support-library/androidx-rn
android.injected.testOnly
=
false
\ No newline at end of file
sobot_common/src/main/java/com/sobot/common/login/SobotLoginTools.java
View file @
626141c5
...
...
@@ -4,20 +4,23 @@ import android.content.Context;
import
com.sobot.common.login.callback.SobotResultBlock
;
import
com.sobot.common.login.callback.SobotResultCode
;
import
com.sobot.common.login.db.FunctionManager
;
import
com.sobot.common.login.db.HostManager
;
import
com.sobot.common.login.db.LoginUserManager
;
import
com.sobot.common.login.db.ServiceInfoManager
;
import
com.sobot.common.login.model.HostModel
;
import
com.sobot.common.login.model.
Login
UserEntity
;
import
com.sobot.common.login.model.
Online
UserEntity
;
import
com.sobot.common.login.model.ServiceFunctionVoModel
;
import
com.sobot.common.login.model.SobotCallBaseCode
;
import
com.sobot.common.login.model.SobotServiceInfoModel
;
import
com.sobot.common.login.model.TokenModel
;
import
com.sobot.common.login.permission.SobotPermissionApi
;
import
com.sobot.common.login.permission.SobotPermissionManager
;
import
com.sobot.gson.SobotGsonUtil
;
import
com.sobot.network.apiUtils.SobotBaseCode
;
import
com.sobot.network.apiUtils.SobotHttpUtils
;
import
com.sobot.network.http.HttpBaseUtils
;
import
com.sobot.utils.SobotLogUtils
;
import
com.sobot.utils.SobotMD5Util
;
import
com.sobot.utils.SobotSharedPreferencesUtil
;
import
com.sobot.utils.SobotStringUtils
;
...
...
@@ -46,27 +49,6 @@ public class SobotLoginTools {
}
private
LoginUserEntity
user
;
public
LoginUserEntity
getLoginUser
()
{
if
(
user
==
null
||
user
.
getAid
()
==
null
)
{
user
=
LoginUserManager
.
getInstance
().
getCurUser
();
}
return
user
;
}
public
void
setLoginUser
(
LoginUserEntity
newUser
)
{
LoginUserManager
.
getInstance
().
deleteAll
();
user
=
newUser
;
if
(
user
!=
null
)
{
user
.
setLogin_time
(
System
.
currentTimeMillis
());
LoginUserManager
.
getInstance
().
insert
(
user
);
}
else
{
ServiceInfoManager
.
getInstance
().
deleteAll
();
}
}
private
SobotServiceInfoModel
mServiceInfoModel
;
public
SobotServiceInfoModel
getServiceInfo
()
{
...
...
@@ -76,6 +58,19 @@ public class SobotLoginTools {
return
mServiceInfoModel
;
}
private
List
<
ServiceFunctionVoModel
>
functionVoModelList
;
//获取权限列表
public
List
<
ServiceFunctionVoModel
>
getServiceFunctionVoModel
()
{
if
(
functionVoModelList
==
null
&&
ServiceInfoManager
.
getInstance
().
getInfo
()
!=
null
)
{
functionVoModelList
=
ServiceInfoManager
.
getInstance
().
getInfo
().
getFunctionStr
();
}
if
(
functionVoModelList
==
null
)
{
functionVoModelList
=
new
ArrayList
<>();
}
return
functionVoModelList
;
}
public
void
setServiceInfo
(
SobotServiceInfoModel
newServiceInfo
)
{
ServiceInfoManager
.
getInstance
().
deleteAll
();
mServiceInfoModel
=
newServiceInfo
;
...
...
@@ -119,33 +114,33 @@ public class SobotLoginTools {
//呼叫 v6 获取 accessToken
public
String
getAccessToken
()
{
if
(
get
LoginUser
()
!=
null
)
{
return
SobotStringUtils
.
checkStringIsNull
(
get
LoginUser
().
getAccess_token
());
if
(
get
ServiceInfo
()
!=
null
)
{
return
SobotStringUtils
.
checkStringIsNull
(
get
ServiceInfo
().
getAccess_token
());
}
return
""
;
}
//呼叫 v6 获取 accessToken
public
String
getTempId
()
{
if
(
get
LoginUser
()
!=
null
)
{
return
SobotStringUtils
.
checkStringIsNull
(
get
LoginUser
().
getTempId
());
if
(
get
ServiceInfo
()
!=
null
)
{
return
SobotStringUtils
.
checkStringIsNull
(
get
ServiceInfo
().
getTempId
());
}
return
""
;
}
//呼叫 v6 获取 accessToken
public
String
getToken
()
{
if
(
get
LoginUser
()
!=
null
)
{
return
SobotStringUtils
.
checkStringIsNull
(
get
LoginUser
().
getToken
());
if
(
get
ServiceInfo
()
!=
null
)
{
return
SobotStringUtils
.
checkStringIsNull
(
get
ServiceInfo
().
getToken
());
}
return
""
;
}
// 检查token是否过期 12个小时 返回true 有效; false 过期
public
boolean
checkExpiresToken
()
{
if
(
get
LoginUser
()
!=
null
)
{
long
difference
=
System
.
currentTimeMillis
()
-
get
LoginUser
().
getLogin_time
();
if
(
get
LoginUser
().
getLogin_time
()
>
0
&&
(
difference
>
12
*
60
*
60
*
1000
))
{
if
(
get
ServiceInfo
()
!=
null
)
{
long
difference
=
System
.
currentTimeMillis
()
-
get
ServiceInfo
().
getLogin_time
();
if
(
get
ServiceInfo
().
getLogin_time
()
>
0
&&
(
difference
>
12
*
60
*
60
*
1000
))
{
SobotLogUtils
.
d
(
"上次登录距离当前的时间:"
+
difference
+
"ms,已经超过12小时,token已经过期"
);
return
false
;
}
...
...
@@ -154,8 +149,8 @@ public class SobotLoginTools {
}
public
boolean
isLogin
()
{
//登录
对象,
客户对象不为空,token 不为空,token 没过期 才判定已经登录成功,其它情况都是没登录
if
(
get
LoginUser
()
!=
null
&&
getServiceInfo
()
!=
null
&&
!
SobotStringUtils
.
isEmpty
(
getLoginUser
().
getToken
())
&&
checkExpiresToken
())
{
//登录客户对象不为空,token 不为空,token 没过期 才判定已经登录成功,其它情况都是没登录
if
(
get
ServiceInfo
()
!=
null
&&
!
SobotStringUtils
.
isEmpty
(
getServiceInfo
().
getToken
())
&&
checkExpiresToken
())
{
return
true
;
}
else
{
return
false
;
...
...
@@ -164,8 +159,8 @@ public class SobotLoginTools {
//判断是否已经登录
public
boolean
isLogin
(
String
loginAccount
)
{
//登录
对象,
客户对象不为空,登录账号和登录对象里边账号一样,token 不为空,token 没过期 才判定已经登录成功,其它情况都是没登录
if
(
get
LoginUser
()
!=
null
&&
getServiceInfo
()
!=
null
&&
!
SobotStringUtils
.
isEmpty
(
loginAccount
)
&&
loginAccount
.
equals
(
getLoginUser
().
getLoginAccount
())
&&
!
SobotStringUtils
.
isEmpty
(
getLoginUser
().
getToken
())
&&
checkExpiresToken
())
{
//登录客户对象不为空,登录账号和登录对象里边账号一样,token 不为空,token 没过期 才判定已经登录成功,其它情况都是没登录
if
(
get
ServiceInfo
()
!=
null
&&
!
SobotStringUtils
.
isEmpty
(
loginAccount
)
&&
loginAccount
.
equals
(
getServiceInfo
().
getLoginAccount
())
&&
!
SobotStringUtils
.
isEmpty
(
getServiceInfo
().
getToken
())
&&
checkExpiresToken
())
{
return
true
;
}
else
{
return
false
;
...
...
@@ -174,11 +169,11 @@ public class SobotLoginTools {
//清除登录token
public
void
clearLoginToken
()
{
LoginUserEntity
tempUserEntity
=
getLoginUser
();
if
(
tempUserEntity
!=
null
)
{
SobotServiceInfoModel
tempUserEntity
=
getServiceInfo
();
if
(
tempUserEntity
!=
null
)
{
tempUserEntity
.
setAccess_token
(
""
);
tempUserEntity
.
setToken
(
""
);
set
LoginUser
(
tempUserEntity
);
set
ServiceInfo
(
tempUserEntity
);
}
}
...
...
@@ -189,109 +184,131 @@ public class SobotLoginTools {
/**
* 清除登录信息
*
* @param isClearHost 是否清理域名
*/
public
void
clearLoginInfo
(
boolean
isClearHost
)
{
LoginUserManager
.
getInstance
().
deleteAll
();
ServiceInfoManager
.
getInstance
().
deleteAll
();
user
=
null
;
mServiceInfoModel
=
null
;
if
(
isClearHost
){
if
(
isClearHost
)
{
HostManager
.
getInstance
().
deleteAll
();
}
}
// 执行APP登录接口
public
void
doAppLogin
(
final
Object
cancelTag
,
final
Context
mContext
,
final
String
host
,
final
String
openApiHost
,
long
timeout
,
Map
<
String
,
Object
>
params
,
Map
<
String
,
String
>
headers
,
final
String
loginAccount
,
final
String
loginPwd
,
final
SobotResultBlock
resultBlock
)
{
if
(
isLogin
(
loginAccount
))
{
/**
* 执行登录操作
* 1、通过账号密码登录获取token;2、根据token获取客服角色权限等信息;3、如果是呼叫V6或者电销,先获取AccessToken;4、再根据客服app或者客服SDK登录同时又买了在线产品判断是否执行在线操作逻辑
*
* @param cancelTag
* @param mContext
* @param isAppOrOnlineLogin 客服app或者客服SDK登录传true 工单或呼叫Sdk 传false
* @param host
* @param openApiHost
* @param loginAcount 登录账号
* @param loginPwd 登录密码
* @param paramsMap 单独执行在线登录逻辑 参数
* @param resultBlock
*/
public
void
doLogin
(
final
Object
cancelTag
,
final
Context
mContext
,
final
boolean
isAppOrOnlineLogin
,
final
String
host
,
final
String
openApiHost
,
final
String
loginAcount
,
final
String
loginPwd
,
final
Map
<
String
,
Object
>
paramsMap
,
final
SobotResultBlock
resultBlock
)
{
if
(
SobotStringUtils
.
isEmpty
(
host
)
||
SobotStringUtils
.
isEmpty
(
openApiHost
))
{
SobotLogUtils
.
i
(
"域名不能为空"
);
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_FAILED
,
"域名不能为空"
,
getServiceInfo
());
}
return
;
}
if
(
isLogin
(
loginAcount
))
{
SobotLogUtils
.
i
(
"已经登录成功,不用重新登录"
);
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_SUCCEEDED
,
"已经登录成功"
,
get
LoginUser
());
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_SUCCEEDED
,
"已经登录成功"
,
get
ServiceInfo
());
}
return
;
}
SobotHttpUtils
.
doPost
(
cancelTag
,
host
+
"/chat-sdk/sdk/admin/v1/login.action"
,
timeout
,
params
,
headers
,
new
HttpBaseUtils
.
StringCallBack
()
{
final
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
params
.
put
(
"userEntity"
,
loginAcount
);
params
.
put
(
"loginPwd"
,
loginPwd
);
SobotHttpUtils
.
doPost
(
cancelTag
,
host
+
"/basic-login/serviceAppLogin/4"
,
8000
,
params
,
null
,
new
HttpBaseUtils
.
StringCallBack
()
{
@Override
public
void
onResponse
(
String
result
)
{
if
(!
SobotStringUtils
.
isEmpty
(
result
))
{
final
SobotBaseCode
<
LoginUserEntity
>
baseModel
=
SobotGsonUtil
.
jsonToBeans
(
result
,
new
com
.
sobot
.
gson
.
reflect
.
TypeToken
<
SobotBaseCode
<
LoginUserEntity
>>()
{
}.
getType
());
if
(
baseModel
!=
null
)
{
//登录接口和获取坐席信息权限接口都成功才算真正登录成功
if
(
"1"
.
equals
(
baseModel
.
getCode
())
&&
baseModel
.
getData
()
!=
null
)
{
final
LoginUserEntity
userEntity
=
baseModel
.
getData
();
getLoginUserInfo
(
cancelTag
,
mContext
,
host
,
baseModel
.
getData
().
getToken
(),
baseModel
.
getData
().
getLanguage
(),
new
SobotResultBlock
()
{
@Override
public
void
resultBolok
(
SobotResultCode
code
,
String
msg
,
Object
obj
)
{
if
(
code
==
SobotResultCode
.
CODE_SUCCEEDED
)
{
SobotServiceInfoModel
serviceInfoModel
=
(
SobotServiceInfoModel
)
obj
;
if
(
serviceInfoModel
!=
null
)
{
if
((
serviceInfoModel
.
getCallV6Flag
()
==
1
||
SobotPermissionManager
.
isHasNewPermission
(
SobotPermissionManager
.
SCC
))
&&
!
SobotStringUtils
.
isEmpty
(
openApiHost
))
{
if
(
userEntity
!=
null
&&
!
SobotStringUtils
.
isEmpty
(
userEntity
.
getToken
()))
{
//如果是v6呼叫
String
tempHost
=
openApiHost
;
if
(
tempHost
.
contains
(
"/text"
))
{
tempHost
=
tempHost
.
replace
(
"/text"
,
""
);
}
doAccessToken
(
cancelTag
,
tempHost
,
userEntity
.
getToken
(),
new
SobotResultBlock
()
{
@Override
public
void
resultBolok
(
SobotResultCode
code
,
String
msg
,
Object
obj
)
{
if
(
code
==
SobotResultCode
.
CODE_SUCCEEDED
)
{
LoginUserEntity
tempUserEntity
=
userEntity
;
String
accessToken
=
(
String
)
obj
;
tempUserEntity
.
setAccess_token
(
accessToken
);
tempUserEntity
.
setLogin_time
(
System
.
currentTimeMillis
());
tempUserEntity
.
setLoginAccount
(
loginAccount
);
tempUserEntity
.
setLoginPwd
(
loginPwd
);
setLoginUser
(
tempUserEntity
);
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_SUCCEEDED
,
"登录成功"
,
tempUserEntity
);
}
}
else
{
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_FAILED
,
"登录失败"
,
null
);
}
public
void
onResponse
(
String
response
)
{
SobotCallBaseCode
result
=
SobotGsonUtil
.
jsonToBean
(
response
,
SobotCallBaseCode
.
class
);
if
(
result
!=
null
&&
!
SobotStringUtils
.
isEmpty
(
result
.
getRetCode
())
&&
"000000"
.
equals
(
result
.
getRetCode
())
&&
!
SobotStringUtils
.
isEmpty
(
result
.
getItem
()))
{
final
long
login_time
=
System
.
currentTimeMillis
();
final
String
token
=
(
String
)
result
.
getItem
();
getuserEntityInfo
(
cancelTag
,
mContext
,
host
,
token
,
""
,
new
SobotResultBlock
()
{
@Override
public
void
resultBolok
(
SobotResultCode
code
,
String
msg
,
Object
obj
)
{
if
(
code
==
SobotResultCode
.
CODE_SUCCEEDED
)
{
SobotServiceInfoModel
serviceInfoModel
=
(
SobotServiceInfoModel
)
obj
;
if
(
serviceInfoModel
!=
null
)
{
serviceInfoModel
.
setLogin_time
(
login_time
);
serviceInfoModel
.
setToken
(
token
);
serviceInfoModel
.
setLoginAccount
(
loginAcount
);
serviceInfoModel
.
setLoginPwd
(
loginPwd
);
if
((
serviceInfoModel
.
getCallV6Flag
()
==
1
||
SobotPermissionManager
.
isHasNewPermission
(
SobotPermissionManager
.
SCC
))
&&
!
SobotStringUtils
.
isEmpty
(
openApiHost
))
{
//如果是v6呼叫
String
tempHost
=
openApiHost
;
if
(
tempHost
.
contains
(
"/text"
))
{
tempHost
=
tempHost
.
replace
(
"/text"
,
""
);
}
final
SobotServiceInfoModel
tempServiceInfoModel
=
serviceInfoModel
;
doAccessToken
(
cancelTag
,
tempHost
,
serviceInfoModel
.
getToken
(),
new
SobotResultBlock
()
{
@Override
public
void
resultBolok
(
SobotResultCode
code
,
String
msg
,
Object
obj
)
{
if
(
code
==
SobotResultCode
.
CODE_SUCCEEDED
)
{
SobotServiceInfoModel
tempUserEntity
=
tempServiceInfoModel
;
if
(
obj
!=
null
&&
obj
instanceof
String
&&
SobotStringUtils
.
isNoEmpty
((
String
)
obj
))
{
String
accessToken
=
(
String
)
obj
;
tempUserEntity
.
setAccess_token
(
accessToken
);
//判断是否有对话功能
if
(
SobotPermissionManager
.
checkPermission
(
SobotPermissionApi
.
USER_PERMISSION_TYPE_TALK
)
&&
isAppOrOnlineLogin
)
{
doOnline
(
cancelTag
,
mContext
,
host
,
paramsMap
,
tempUserEntity
,
resultBlock
);
}
else
{
setServiceInfo
(
tempUserEntity
);
SobotSharedPreferencesUtil
.
getInstance
(
mContext
).
put
(
SobotLoginConstant
.
SOBOT_LOGIN_USER_INFO
,
tempUserEntity
);
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_SUCCEEDED
,
"登录成功"
,
tempUserEntity
);
}
}
});
}
else
{
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_FAILED
,
"登录失败 accessToken获取失败"
,
null
);
}
}
}
else
{
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_FAILED
,
"登录失败"
,
null
);
}
}
}
else
{
LoginUserEntity
tempUserEntity
=
userEntity
;
tempUserEntity
.
setLogin_time
(
System
.
currentTimeMillis
());
tempUserEntity
.
setLoginAccount
(
loginAccount
);
tempUserEntity
.
setLoginPwd
(
loginPwd
);
setLoginUser
(
tempUserEntity
);
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_SUCCEEDED
,
"登录成功"
,
userEntity
);
}
}
});
}
else
{
//判断是否有对话功能
if
(
SobotPermissionManager
.
checkPermission
(
SobotPermissionApi
.
USER_PERMISSION_TYPE_TALK
)
&&
isAppOrOnlineLogin
)
{
doOnline
(
cancelTag
,
mContext
,
host
,
paramsMap
,
serviceInfoModel
,
resultBlock
);
}
else
{
setServiceInfo
(
serviceInfoModel
);
SobotSharedPreferencesUtil
.
getInstance
(
mContext
).
put
(
SobotLoginConstant
.
SOBOT_LOGIN_USER_INFO
,
serviceInfoModel
);
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_
FAILED
,
"登录失败"
,
nul
l
);
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_
SUCCEEDED
,
"登录成功"
,
serviceInfoMode
l
);
}
}
}
else
{
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_FAILED
,
SobotStringUtils
.
isNoEmpty
(
msg
)
?
msg
:
"登录失败"
,
""
);
}
}
}
else
{
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_FAILED
,
"登录失败"
,
null
);
}
}
}
else
{
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_FAILED
,
SobotStringUtils
.
isNoEmpty
(
msg
)
?
msg
:
"登录失败"
,
""
);
}
});
}
else
{
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_FAILED
,
baseModel
.
getMsg
(),
baseModel
.
getCode
());
}
}
}
else
{
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_FAILED
,
"接口请求结果为空"
,
null
);
}
}
);
}
else
{
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_FAILED
,
(
result
!=
null
&&
SobotStringUtils
.
isNoEmpty
(
result
.
getRetMsg
()))
?
result
.
getRetMsg
()
:
"登录失败"
,
""
);
}
}
}
...
...
@@ -310,183 +327,169 @@ public class SobotLoginTools {
});
}
// sdk 执行登录接口 会获取accesstoken
public
void
doLogin
(
final
Object
cancelTag
,
final
Context
mContext
,
final
String
host
,
final
String
openApiHost
,
final
String
loginAcount
,
final
String
loginPwd
,
String
logintoken
,
final
SobotResultBlock
resultBlock
)
{
if
(
SobotStringUtils
.
isEmpty
(
logintoken
))
{
if
(
isLogin
(
loginAcount
))
{
SobotLogUtils
.
i
(
"已经登录成功,不用重新登录"
);
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_SUCCEEDED
,
"已经登录成功"
,
getLoginUser
());
}
return
;
/**
* 执行登录操作
* 1、通过账号密码登录获取token;2、根据token获取客服角色权限等信息;3、如果是呼叫V6或者电销,先获取AccessToken;4、再根据客服app或者客服SDK登录同时又买了在线产品判断是否执行在线操作逻辑
*
* @param cancelTag
* @param mContext
* @param isAppOrOnlineLogin true 客服app或者客服SDK登录,如果有在线产品,再单独执行在线登录逻辑
* @param host
* @param openApiHost
* @param loginAcount 登录账号
* @param appkey 客户开通时生成,可以找智齿售后同时获取
* @param appId 客户开通时生成,可以找智齿售后同时获取
* @param paramsMap 单独执行在线登录逻辑 参数
* @param resultBlock
*/
public
void
loginWithAppkey
(
final
Object
cancelTag
,
final
Context
mContext
,
final
boolean
isAppOrOnlineLogin
,
final
String
host
,
final
String
openApiHost
,
final
String
loginAcount
,
final
String
appkey
,
final
String
appId
,
final
Map
<
String
,
Object
>
paramsMap
,
final
SobotResultBlock
resultBlock
)
{
if
(
SobotStringUtils
.
isEmpty
(
host
)
||
SobotStringUtils
.
isEmpty
(
openApiHost
))
{
SobotLogUtils
.
i
(
"域名不能为空"
);
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_FAILED
,
"域名不能为空"
,
getServiceInfo
());
}
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
params
.
put
(
"loginUser"
,
loginAcount
);
params
.
put
(
"loginPwd"
,
loginPwd
);
SobotHttpUtils
.
doPost
(
cancelTag
,
host
+
"/basic-login/serviceAppLogin/4"
,
8000
,
params
,
null
,
new
HttpBaseUtils
.
StringCallBack
()
{
@Override
public
void
onResponse
(
String
response
)
{
SobotCallBaseCode
result
=
SobotGsonUtil
.
jsonToBean
(
response
,
SobotCallBaseCode
.
class
);
if
(
result
!=
null
&&
!
SobotStringUtils
.
isEmpty
(
result
.
getRetCode
())
&&
"000000"
.
equals
(
result
.
getRetCode
())
&&
!
SobotStringUtils
.
isEmpty
(
result
.
getItem
()))
{
final
LoginUserEntity
userEntity
=
new
LoginUserEntity
();
userEntity
.
setLogin_time
(
System
.
currentTimeMillis
());
userEntity
.
setToken
((
String
)
result
.
getItem
());
getLoginUserInfo
(
cancelTag
,
mContext
,
host
,
userEntity
.
getToken
(),
userEntity
.
getLanguage
(),
new
SobotResultBlock
()
{
@Override
public
void
resultBolok
(
SobotResultCode
code
,
String
msg
,
Object
obj
)
{
if
(
code
==
SobotResultCode
.
CODE_SUCCEEDED
)
{
SobotServiceInfoModel
serviceInfoModel
=
(
SobotServiceInfoModel
)
obj
;
if
(
serviceInfoModel
!=
null
)
{
if
((
serviceInfoModel
.
getCallV6Flag
()
==
1
||
SobotPermissionManager
.
isHasNewPermission
(
SobotPermissionManager
.
SCC
))
&&
!
SobotStringUtils
.
isEmpty
(
openApiHost
))
{
if
(
userEntity
!=
null
&&
!
SobotStringUtils
.
isEmpty
(
userEntity
.
getToken
()))
{
//如果是v6呼叫
String
tempHost
=
openApiHost
;
if
(
tempHost
.
contains
(
"/text"
))
{
tempHost
=
tempHost
.
replace
(
"/text"
,
""
);
}
doAccessToken
(
cancelTag
,
tempHost
,
userEntity
.
getToken
(),
new
SobotResultBlock
()
{
@Override
public
void
resultBolok
(
SobotResultCode
code
,
String
msg
,
Object
obj
)
{
if
(
code
==
SobotResultCode
.
CODE_SUCCEEDED
)
{
LoginUserEntity
tempUserEntity
=
userEntity
;
String
accessToken
=
(
String
)
obj
;
tempUserEntity
.
setAccess_token
(
accessToken
);
tempUserEntity
.
setLogin_time
(
System
.
currentTimeMillis
());
tempUserEntity
.
setLoginAccount
(
loginAcount
);
tempUserEntity
.
setLoginPwd
(
loginPwd
);
setLoginUser
(
tempUserEntity
);
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_SUCCEEDED
,
"登录成功"
,
tempUserEntity
);
}
}
else
{
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_FAILED
,
"登录失败"
,
null
);
return
;
}
if
(
isLogin
(
loginAcount
))
{
SobotLogUtils
.
i
(
"已经登录成功,不用重新登录"
);
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_SUCCEEDED
,
"已经登录成功"
,
getServiceInfo
());
}
return
;
}
Map
<
String
,
Object
>
tokebMap
=
new
HashMap
<>();
String
nowMills
=
System
.
currentTimeMillis
()
+
""
;
tokebMap
.
put
(
"appid"
,
appId
);
tokebMap
.
put
(
"create_time"
,
nowMills
);
tokebMap
.
put
(
"sign"
,
SobotMD5Util
.
encode
(
appId
+
nowMills
+
appkey
));
//获取 公司token
SobotHttpUtils
.
doGet
(
cancelTag
,
openApiHost
.
replace
(
"/text"
,
""
)
+
"/api/get_token"
,
8000
,
tokebMap
,
null
,
new
HttpBaseUtils
.
StringCallBack
()
{
@Override
public
void
onResponse
(
String
response
)
{
TokenModel
result
=
SobotGsonUtil
.
jsonToBean
(
response
,
TokenModel
.
class
);
if
(
result
!=
null
&&
!
SobotStringUtils
.
isEmpty
(
result
.
getRet_code
())
&&
"000000"
.
equals
(
result
.
getRet_code
())
&&
result
.
getItem
()
!=
null
&&
SobotStringUtils
.
isNoEmpty
(
result
.
getItem
().
getToken
()))
{
String
ctoken
=
result
.
getItem
().
getToken
();
Map
<
String
,
String
>
headerMap
=
new
HashMap
<>();
headerMap
.
put
(
"token"
,
ctoken
);
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
params
.
put
(
"agent_email"
,
loginAcount
);
//获取 个人座席token
SobotHttpUtils
.
doPost
(
cancelTag
,
openApiHost
.
replace
(
"/text"
,
""
)
+
"/api/public/sso/5/login"
,
8000
,
params
,
headerMap
,
new
HttpBaseUtils
.
StringCallBack
()
{
@Override
public
void
onResponse
(
String
response
)
{
TokenModel
result
=
SobotGsonUtil
.
jsonToBean
(
response
,
TokenModel
.
class
);
if
(
result
!=
null
&&
!
SobotStringUtils
.
isEmpty
(
result
.
getRet_code
())
&&
"000000"
.
equals
(
result
.
getRet_code
())
&&
result
.
getItem
()
!=
null
&&
SobotStringUtils
.
isNoEmpty
(
result
.
getItem
().
getToken
()))
{
final
long
login_time
=
System
.
currentTimeMillis
();
final
String
token
=
result
.
getItem
().
getToken
();
getuserEntityInfo
(
cancelTag
,
mContext
,
host
,
token
,
""
,
new
SobotResultBlock
()
{
@Override
public
void
resultBolok
(
SobotResultCode
code
,
String
msg
,
Object
obj
)
{
if
(
code
==
SobotResultCode
.
CODE_SUCCEEDED
)
{
SobotServiceInfoModel
serviceInfoModel
=
(
SobotServiceInfoModel
)
obj
;
if
(
serviceInfoModel
!=
null
)
{
serviceInfoModel
.
setLogin_time
(
login_time
);
serviceInfoModel
.
setToken
(
token
);
serviceInfoModel
.
setLoginAccount
(
loginAcount
);
if
((
serviceInfoModel
.
getCallV6Flag
()
==
1
||
SobotPermissionManager
.
isHasNewPermission
(
SobotPermissionManager
.
SCC
))
&&
!
SobotStringUtils
.
isEmpty
(
openApiHost
))
{
//如果是v6呼叫
String
tempHost
=
openApiHost
;
if
(
tempHost
.
contains
(
"/text"
))
{
tempHost
=
tempHost
.
replace
(
"/text"
,
""
);
}
final
SobotServiceInfoModel
tempServiceInfoModel
=
serviceInfoModel
;
doAccessToken
(
cancelTag
,
tempHost
,
serviceInfoModel
.
getToken
(),
new
SobotResultBlock
()
{
@Override
public
void
resultBolok
(
SobotResultCode
code
,
String
msg
,
Object
obj
)
{
if
(
code
==
SobotResultCode
.
CODE_SUCCEEDED
)
{
SobotServiceInfoModel
tempUserEntity
=
tempServiceInfoModel
;
if
(
obj
!=
null
&&
obj
instanceof
String
&&
SobotStringUtils
.
isNoEmpty
((
String
)
obj
))
{
String
accessToken
=
(
String
)
obj
;
tempUserEntity
.
setAccess_token
(
accessToken
);
//判断是否有对话功能
if
(
SobotPermissionManager
.
checkPermission
(
SobotPermissionApi
.
USER_PERMISSION_TYPE_TALK
)
&&
isAppOrOnlineLogin
)
{
doOnline
(
cancelTag
,
mContext
,
host
,
paramsMap
,
tempUserEntity
,
resultBlock
);
}
else
{
setServiceInfo
(
tempUserEntity
);
SobotSharedPreferencesUtil
.
getInstance
(
mContext
).
put
(
SobotLoginConstant
.
SOBOT_LOGIN_USER_INFO
,
tempUserEntity
);
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_SUCCEEDED
,
"登录成功"
,
tempUserEntity
);
}
}
}
else
{
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_FAILED
,
"登录失败 accessToken获取失败"
,
null
);
}
}
}
else
{
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_FAILED
,
"登录失败"
,
null
);
}
}
}
});
}
else
{
//判断是否有对话功能
if
(
SobotPermissionManager
.
checkPermission
(
SobotPermissionApi
.
USER_PERMISSION_TYPE_TALK
)
&&
isAppOrOnlineLogin
)
{
doOnline
(
cancelTag
,
mContext
,
host
,
paramsMap
,
serviceInfoModel
,
resultBlock
);
}
else
{
setServiceInfo
(
serviceInfoModel
);
SobotSharedPreferencesUtil
.
getInstance
(
mContext
).
put
(
SobotLoginConstant
.
SOBOT_LOGIN_USER_INFO
,
serviceInfoModel
);
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_SUCCEEDED
,
"登录成功"
,
serviceInfoModel
);
}
}
}
);
}
}
else
{
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_FAILED
,
"登录失败"
,
null
);
}
}
}
else
{
LoginUserEntity
tempUserEntity
=
userEntity
;
tempUserEntity
.
setLogin_time
(
System
.
currentTimeMillis
());
tempUserEntity
.
setLoginAccount
(
loginAcount
);
tempUserEntity
.
setLoginPwd
(
loginPwd
);
setLoginUser
(
tempUserEntity
);
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_
SUCCEEDED
,
"登录成功"
,
userEntity
);
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_
FAILED
,
SobotStringUtils
.
isNoEmpty
(
msg
)
?
msg
:
"登录失败"
,
""
);
}
}
}
else
{
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_FAILED
,
"登录失败"
,
null
);
}
}
}
else
{
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_FAILED
,
SobotStringUtils
.
isNoEmpty
(
msg
)
?
msg
:
"登录失败"
,
""
);
}
});
}
else
{
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_FAILED
,
(
result
!=
null
&&
SobotStringUtils
.
isNoEmpty
(
result
.
getRet_msg
()))
?
result
.
getRet_msg
()
:
"登录失败"
,
""
);
}
}
});
}
else
{
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_FAILED
,
(
result
!=
null
&&
SobotStringUtils
.
isNoEmpty
(
result
.
getRetMsg
()))
?
result
.
getRetMsg
()
:
"登录失败"
,
""
);
}
}
}
@Override
public
void
onError
(
Exception
e
,
String
msg
,
int
responseCode
)
{
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_FAILED
,
msg
,
null
);
}
}
@Override
public
void
onError
(
Exception
e
,
String
msg
,
int
responseCode
)
{
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_FAILED
,
msg
,
null
);
}
}
@Override
public
void
inProgress
(
int
progress
)
{
@Override
public
void
inProgress
(
int
progress
)
{
}
});
}
else
{
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_FAILED
,
(
result
!=
null
&&
SobotStringUtils
.
isNoEmpty
(
result
.
getRet_msg
()))
?
result
.
getRet_msg
()
:
"登录失败"
,
""
);
}
}
}
);
}
}
else
{
if
(
getToken
().
equals
(
logintoken
))
{
SobotLogUtils
.
i
(
"账号和token一样 token未过期 已经登录成功,不用重新登录"
);
@Override
public
void
onError
(
Exception
e
,
String
msg
,
int
responseCode
)
{
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_
SUCCEEDED
,
"已经登录成功"
,
getLoginUser
()
);
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_
FAILED
,
msg
,
null
);
}
return
;
}
final
LoginUserEntity
userEntity
=
new
LoginUserEntity
();
userEntity
.
setLogin_time
(
System
.
currentTimeMillis
());
userEntity
.
setToken
(
logintoken
);
getLoginUserInfo
(
cancelTag
,
mContext
,
host
,
userEntity
.
getToken
(),
userEntity
.
getLanguage
(),
new
SobotResultBlock
()
{
@Override
public
void
resultBolok
(
SobotResultCode
code
,
String
msg
,
Object
obj
)
{
if
(
code
==
SobotResultCode
.
CODE_SUCCEEDED
)
{
SobotServiceInfoModel
serviceInfoModel
=
(
SobotServiceInfoModel
)
obj
;
if
(
serviceInfoModel
!=
null
)
{
if
((
serviceInfoModel
.
getCallV6Flag
()
==
1
||
SobotPermissionManager
.
isHasNewPermission
(
SobotPermissionManager
.
SCC
))
&&
!
SobotStringUtils
.
isEmpty
(
openApiHost
))
{
if
(
userEntity
!=
null
&&
!
SobotStringUtils
.
isEmpty
(
userEntity
.
getToken
()))
{
//如果是v6呼叫
String
tempHost
=
openApiHost
;
if
(
tempHost
.
contains
(
"/text"
))
{
tempHost
=
tempHost
.
replace
(
"/text"
,
""
);
}
doAccessToken
(
cancelTag
,
tempHost
,
userEntity
.
getToken
(),
new
SobotResultBlock
()
{
@Override
public
void
resultBolok
(
SobotResultCode
code
,
String
msg
,
Object
obj
)
{
if
(
code
==
SobotResultCode
.
CODE_SUCCEEDED
)
{
LoginUserEntity
tempUserEntity
=
userEntity
;
String
accessToken
=
(
String
)
obj
;
tempUserEntity
.
setAccess_token
(
accessToken
);
tempUserEntity
.
setLogin_time
(
System
.
currentTimeMillis
());
tempUserEntity
.
setLoginAccount
(
loginAcount
);
tempUserEntity
.
setLoginPwd
(
loginPwd
);
setLoginUser
(
tempUserEntity
);
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_SUCCEEDED
,
"登录成功"
,
tempUserEntity
);
}
}
else
{
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_FAILED
,
"登录失败"
,
null
);
}
}
}
});
}
else
{
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_FAILED
,
"登录失败"
,
null
);
}
}
}
else
{
LoginUserEntity
tempUserEntity
=
userEntity
;
tempUserEntity
.
setLogin_time
(
System
.
currentTimeMillis
());
tempUserEntity
.
setLoginAccount
(
loginAcount
);
tempUserEntity
.
setLoginPwd
(
loginPwd
);
setLoginUser
(
tempUserEntity
);
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_SUCCEEDED
,
"登录成功"
,
userEntity
);
}
}
}
else
{
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_FAILED
,
"登录失败"
,
null
);
}
}
}
else
{
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_FAILED
,
SobotStringUtils
.
isNoEmpty
(
msg
)
?
msg
:
"登录失败"
,
""
);
}
}
}
});
}
@Override
public
void
inProgress
(
int
progress
)
{
}
});
}
// sdk 执行退出登录
...
...
@@ -504,7 +507,7 @@ public class SobotLoginTools {
return
;
}
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
params
.
put
(
"
loginUser
"
,
loginAcount
);
params
.
put
(
"
userEntity
"
,
loginAcount
);
Map
<
String
,
String
>
headerParams
=
new
HashMap
<>();
headerParams
.
put
(
"temp-id"
,
getToken
());
headerParams
.
put
(
"from"
,
2
+
""
);
...
...
@@ -548,8 +551,8 @@ public class SobotLoginTools {
* @param token
* @param resultBlock
*/
public
void
get
LoginUser
Info
(
final
Object
cancelTag
,
final
Context
mContext
,
final
String
host
,
String
token
,
String
language
,
final
SobotResultBlock
resultBlock
)
{
public
void
get
userEntity
Info
(
final
Object
cancelTag
,
final
Context
mContext
,
final
String
host
,
String
token
,
String
language
,
final
SobotResultBlock
resultBlock
)
{
final
String
url
=
host
+
"/basic-config-service/consoleAuth/queryAppAgentMenus"
;
Map
<
String
,
String
>
headerMap
=
new
HashMap
<>();
if
(!
SobotStringUtils
.
isEmpty
(
token
))
{
...
...
@@ -570,8 +573,15 @@ public class SobotLoginTools {
SobotServiceInfoModel
serviceInfoModel
=
SobotGsonUtil
.
jsonToBean
(
resonseObj
.
optString
(
"item"
),
SobotServiceInfoModel
.
class
);
List
<
ServiceFunctionVoModel
>
functions
=
new
ArrayList
<>();
JSONArray
items
=
resonseObj
.
optJSONArray
(
"items"
);
getListByObj
(
functions
,
items
);
getListByObj
(
functions
,
items
);
//添加新版权限
if
(
serviceInfoModel
!=
null
)
{
if
(
serviceInfoModel
.
getFunctionStr
()
!=
null
&&
serviceInfoModel
.
getFunctionStr
().
size
()
>
0
)
{
for
(
int
i
=
0
;
i
<
serviceInfoModel
.
getFunctionStr
().
size
();
i
++)
{
ServiceFunctionVoModel
functionVoModel
=
serviceInfoModel
.
getFunctionStr
().
get
(
i
);
functionVoModel
.
setCheckedCode
(
functionVoModel
.
isChecked
()
?
1
:
0
);
functions
.
add
(
functionVoModel
);
//添加旧版权限
}
}
if
(
serviceInfoModel
.
getGlobalPermissions
()
!=
null
)
{
//全局权限
for
(
int
i
=
0
;
i
<
serviceInfoModel
.
getGlobalPermissions
().
size
();
i
++)
{
...
...
@@ -580,13 +590,13 @@ public class SobotLoginTools {
functionVoModel
.
setCode
(
serviceInfoModel
.
getGlobalPermissions
().
get
(
i
));
functions
.
add
(
functionVoModel
);
}
}
}
serviceInfoModel
.
setFunctionStr
(
functions
);
//保存在数据库
//权限保存入库
FunctionManager
.
getInstance
().
setFunctionVos
(
functions
);
//先保存一次
setServiceInfo
(
serviceInfoModel
);
SobotSharedPreferencesUtil
.
getInstance
(
mContext
).
put
(
SobotLoginConstant
.
SOBOT_LOGIN_USER_INFO
,
serviceInfoModel
);
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_SUCCEEDED
,
"获取成功"
,
serviceInfoModel
);
}
...
...
@@ -689,4 +699,74 @@ public class SobotLoginTools {
});
}
// 如果是智齿客服APP 或者客服SDK 并且有对话模块,需要请求在线逻辑接口
public
void
doOnline
(
final
Object
cancelTag
,
final
Context
context
,
final
String
host
,
Map
<
String
,
Object
>
params
,
final
SobotServiceInfoModel
infoModel
,
final
SobotResultBlock
resultBlock
)
{
if
(
infoModel
!=
null
)
{
Map
<
String
,
String
>
headers
=
new
HashMap
<>();
headers
.
put
(
"token"
,
SobotStringUtils
.
checkStringIsNull
(
infoModel
.
getToken
()));
headers
.
put
(
"language"
,
SobotStringUtils
.
checkStringIsNull
(
infoModel
.
getLanguage
()));
SobotHttpUtils
.
doPost
(
cancelTag
,
host
+
"/chat-sdk/sdk/admin/v1/appLogin"
,
8000
,
params
,
headers
,
new
HttpBaseUtils
.
StringCallBack
()
{
@Override
public
void
onResponse
(
String
result
)
{
if
(!
SobotStringUtils
.
isEmpty
(
result
))
{
final
SobotBaseCode
<
OnlineUserEntity
>
baseModel
=
SobotGsonUtil
.
jsonToBeans
(
result
,
new
com
.
sobot
.
gson
.
reflect
.
TypeToken
<
SobotBaseCode
<
OnlineUserEntity
>>()
{
}.
getType
());
if
(
baseModel
!=
null
)
{
//登录接口和获取坐席信息权限接口都成功才算真正登录成功
if
(
"1"
.
equals
(
baseModel
.
getCode
())
&&
baseModel
.
getData
()
!=
null
)
{
OnlineUserEntity
userEntity
=
baseModel
.
getData
();
SobotServiceInfoModel
tempServiceInfoModel
=
infoModel
;
tempServiceInfoModel
.
setPu
(
SobotStringUtils
.
checkStringIsNull
(
userEntity
.
getPu
()));
tempServiceInfoModel
.
setPuid
(
SobotStringUtils
.
checkStringIsNull
(
userEntity
.
getPuid
()));
tempServiceInfoModel
.
setTempId
(
SobotStringUtils
.
checkStringIsNull
(
userEntity
.
getTempId
()));
tempServiceInfoModel
.
setWslinkDefault
(
SobotStringUtils
.
checkStringIsNull
(
userEntity
.
getWslinkDefault
()));
tempServiceInfoModel
.
setImFlag
(
userEntity
.
getImFlag
());
tempServiceInfoModel
.
setCenterNumber
(
SobotStringUtils
.
checkStringIsNull
(
userEntity
.
getCenterNumber
()));
tempServiceInfoModel
.
setKbVersion
(
SobotStringUtils
.
checkStringIsNull
(
userEntity
.
getKbVersion
()));
tempServiceInfoModel
.
setRobotVersion
(
SobotStringUtils
.
checkStringIsNull
(
userEntity
.
getRobotVersion
()));
tempServiceInfoModel
.
setOnlineVersion
(
SobotStringUtils
.
checkStringIsNull
(
userEntity
.
getOnlineVersion
()));
tempServiceInfoModel
.
setBlackFunction
(
userEntity
.
getBlackFunction
());
tempServiceInfoModel
.
setStatus
(
userEntity
.
getStatus
());
tempServiceInfoModel
.
setFuseWork
(
userEntity
.
getFuseWork
());
tempServiceInfoModel
.
setWslinkBak
(
userEntity
.
getWslinkBak
());
tempServiceInfoModel
.
setTopFlag
(
userEntity
.
getTopFlag
());
tempServiceInfoModel
.
setTransferAuditFlag
(
userEntity
.
getTransferAuditFlag
());
tempServiceInfoModel
.
setSortFlag
(
userEntity
.
getSortFlag
());
tempServiceInfoModel
.
setTransferFunction
(
userEntity
.
getTransferFunction
());
setServiceInfo
(
tempServiceInfoModel
);
SobotSharedPreferencesUtil
.
getInstance
(
context
).
put
(
SobotLoginConstant
.
SOBOT_LOGIN_USER_INFO
,
tempServiceInfoModel
);
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_SUCCEEDED
,
"登录成功"
,
tempServiceInfoModel
);
}
}
else
{
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_FAILED
,
baseModel
.
getMsg
(),
baseModel
.
getCode
());
}
}
}
else
{
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_FAILED
,
"appLogin 接口请求结果为空,登录失败"
,
null
);
}
}
}
}
@Override
public
void
onError
(
Exception
e
,
String
msg
,
int
responseCode
)
{
if
(
resultBlock
!=
null
)
{
resultBlock
.
resultBolok
(
SobotResultCode
.
CODE_FAILED
,
msg
,
null
);
}
}
@Override
public
void
inProgress
(
int
progress
)
{
}
});
}
else
{
}
}
}
sobot_common/src/main/java/com/sobot/common/login/db/FunctionManager.java
0 → 100644
View file @
626141c5
package
com
.
sobot
.
common
.
login
.
db
;
import
android.annotation.SuppressLint
;
import
android.content.ContentValues
;
import
android.content.Context
;
import
android.database.Cursor
;
import
com.sobot.common.login.model.ServiceFunctionVoModel
;
import
com.sobot.common.utils.SobotGlobalContext
;
import
java.util.List
;
/**
* 权限信息 操作类
*/
public
class
FunctionManager
extends
SobotCommonDao
<
ServiceFunctionVoModel
>
{
private
FunctionManager
(
Context
context
)
{
super
(
new
SobotCommonDBHelper
(
context
));
}
//volatile关键字确保多线程下正确处理
private
volatile
static
FunctionManager
mInstance
;
public
static
FunctionManager
getInstance
()
{
//第一次判空
if
(
mInstance
==
null
)
{
//进入同步区域
synchronized
(
FunctionManager
.
class
)
{
//第二次判空
if
(
mInstance
==
null
)
{
mInstance
=
new
FunctionManager
(
SobotGlobalContext
.
getAppContext
());
}
}
}
return
mInstance
;
}
@Override
public
String
getTableName
()
{
return
SobotCommonDBHelper
.
TABLE_LOGIN_USER_FUN_INFO
;
}
@Override
public
void
unInit
()
{
}
@SuppressLint
(
"Range"
)
@Override
public
ServiceFunctionVoModel
parseCursorToBean
(
Cursor
cursor
)
{
ServiceFunctionVoModel
model
=
new
ServiceFunctionVoModel
();
model
.
setId
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"id"
)));
model
.
setCheckedCode
(
cursor
.
getInt
(
cursor
.
getColumnIndex
(
"checkedCode"
)));
model
.
setCode
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"code"
)));
return
model
;
}
@Override
public
ContentValues
getContentValues
(
ServiceFunctionVoModel
functionVoModel
)
{
ContentValues
contentValues
=
new
ContentValues
();
contentValues
.
put
(
"id"
,
functionVoModel
.
getId
());
contentValues
.
put
(
"code"
,
functionVoModel
.
getCode
());
contentValues
.
put
(
"checkedCode"
,
functionVoModel
.
getCheckedCode
());
return
contentValues
;
}
public
void
setFunctionVos
(
List
<
ServiceFunctionVoModel
>
list
)
{
deleteAll
();
insert
(
list
);
}
/**
* 获取权限信息类
*/
public
List
<
ServiceFunctionVoModel
>
getFunctionVos
()
{
List
<
ServiceFunctionVoModel
>
list
=
query
(
null
,
null
,
null
,
null
,
null
,
null
,
null
);
return
list
;
}
}
sobot_common/src/main/java/com/sobot/common/login/db/LoginUserManager.java
deleted
100644 → 0
View file @
73da01cf
package
com
.
sobot
.
common
.
login
.
db
;
import
android.annotation.SuppressLint
;
import
android.content.ContentValues
;
import
android.content.Context
;
import
android.database.Cursor
;
import
com.sobot.common.login.model.LoginUserEntity
;
import
com.sobot.common.utils.SobotGlobalContext
;
import
com.sobot.gson.SobotGsonUtil
;
import
com.sobot.utils.SobotStringUtils
;
import
java.util.List
;
import
java.util.Map
;
/**
* 登录用户信息 操作类
*/
public
class
LoginUserManager
extends
SobotCommonDao
<
LoginUserEntity
>
{
private
LoginUserManager
(
Context
context
)
{
super
(
new
SobotCommonDBHelper
(
context
));
}
//volatile关键字确保多线程下正确处理
private
volatile
static
LoginUserManager
mInstance
;
public
static
LoginUserManager
getInstance
()
{
//第一次判空
if
(
mInstance
==
null
)
{
//进入同步区域
synchronized
(
LoginUserManager
.
class
)
{
//第二次判空
if
(
mInstance
==
null
)
{
mInstance
=
new
LoginUserManager
(
SobotGlobalContext
.
getAppContext
());
}
}
}
return
mInstance
;
}
@Override
public
String
getTableName
()
{
return
SobotCommonDBHelper
.
TABLE_LOGIN_USER
;
}
@Override
public
void
unInit
()
{
}
@SuppressLint
(
"Range"
)
@Override
public
LoginUserEntity
parseCursorToBean
(
Cursor
cursor
)
{
LoginUserEntity
model
=
new
LoginUserEntity
();
model
.
setTempId
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"tempId"
)));
model
.
setNickName
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"nickName"
)));
model
.
setStaffName
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"staffName"
)));
model
.
setMaxServiceCount
(
cursor
.
getInt
(
cursor
.
getColumnIndex
(
"maxServiceCount"
)));
model
.
setBlackFunction
(
cursor
.
getInt
(
cursor
.
getColumnIndex
(
"blackFunction"
)));
model
.
setTransferFunction
(
cursor
.
getInt
(
cursor
.
getColumnIndex
(
"transferFunction"
)));
String
ticketFunction
=
cursor
.
getString
(
cursor
.
getColumnIndex
(
"ticketFunction"
));
if
(!
SobotStringUtils
.
isEmpty
(
ticketFunction
)){
Map
<
String
,
Boolean
>
map
=
SobotGsonUtil
.
jsonToMaps
(
ticketFunction
);
model
.
setTicketFunction
(
map
);
}
model
.
setFace
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"face"
)));
model
.
setCompanyName
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"companyName"
)));
model
.
setAppKey
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"appKey"
)));
model
.
setSid
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"sid"
)));
model
.
setPu
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"pu"
)));
model
.
setPuid
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"puid"
)));
model
.
setToken
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"token"
)));
model
.
setCusRoleName
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"cusRoleName"
)));
model
.
setAid
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"aid"
)));
model
.
setCenterNumber
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"centerNumber"
)));
model
.
setAccountStatus
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"accountStatus"
)));
model
.
setImFlag
(
cursor
.
getInt
(
cursor
.
getColumnIndex
(
"imFlag"
)));
model
.
setCusRoleId
(
cursor
.
getInt
(
cursor
.
getColumnIndex
(
"cusRoleId"
)));
model
.
setStatus
(
cursor
.
getInt
(
cursor
.
getColumnIndex
(
"status"
)));
model
.
setTopFlag
(
cursor
.
getInt
(
cursor
.
getColumnIndex
(
"topFlag"
)));
model
.
setSortFlag
(
cursor
.
getInt
(
cursor
.
getColumnIndex
(
"sortFlag"
)));
model
.
setFuseWork
(
cursor
.
getInt
(
cursor
.
getColumnIndex
(
"fuseWork"
)));
model
.
setCallV6Flag
(
cursor
.
getInt
(
cursor
.
getColumnIndex
(
"callV6Flag"
)));
model
.
setCallV1Flag
(
cursor
.
getInt
(
cursor
.
getColumnIndex
(
"callV1Flag"
)));
model
.
setTransferAuditFlag
(
cursor
.
getInt
(
cursor
.
getColumnIndex
(
"transferAuditFlag"
)));
model
.
setKbVersion
(
cursor
.
getInt
(
cursor
.
getColumnIndex
(
"kbVersion"
))
+
""
);
model
.
setCompanyId
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"companyId"
)));
model
.
setLanguage
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"local_language"
)));
model
.
setAccess_token
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
LoginUserEntity
.
ACCESS_TOKEN
)));
model
.
setLogin_time
(
cursor
.
getLong
(
cursor
.
getColumnIndex
(
LoginUserEntity
.
LOGIN_TIME
)));
model
.
setLoginAccount
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"login_account"
)));
model
.
setLoginPwd
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"login_pwd"
)));
model
.
setWslinkDefault
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"wslinkDefault"
)));
return
model
;
}
@Override
public
ContentValues
getContentValues
(
LoginUserEntity
userAccount
)
{
ContentValues
contentValues
=
new
ContentValues
();
contentValues
.
put
(
"_id"
,
8888
);
contentValues
.
put
(
"tempId"
,
userAccount
.
getTempId
());
contentValues
.
put
(
"nickName"
,
userAccount
.
getNickName
());
contentValues
.
put
(
"staffName"
,
userAccount
.
getStaffName
());
contentValues
.
put
(
"maxServiceCount"
,
userAccount
.
getMaxServiceCount
());
contentValues
.
put
(
"blackFunction"
,
userAccount
.
getBlackFunction
());
contentValues
.
put
(
"transferFunction"
,
userAccount
.
getTransferFunction
());
if
(
userAccount
.
getTicketFunction
()
!=
null
)
{
contentValues
.
put
(
"ticketFunction"
,
SobotGsonUtil
.
beanToJson
(
userAccount
.
getTicketFunction
()));
}
contentValues
.
put
(
"face"
,
userAccount
.
getFace
());
contentValues
.
put
(
"companyName"
,
userAccount
.
getCompanyName
());
contentValues
.
put
(
"appKey"
,
userAccount
.
getAppKey
());
contentValues
.
put
(
"sid"
,
userAccount
.
getSid
());
contentValues
.
put
(
"pu"
,
userAccount
.
getPu
());
contentValues
.
put
(
"puid"
,
userAccount
.
getPuid
());
contentValues
.
put
(
"token"
,
userAccount
.
getToken
());
contentValues
.
put
(
"cusRoleName"
,
userAccount
.
getCusRoleName
());
contentValues
.
put
(
"aid"
,
userAccount
.
getAid
());
contentValues
.
put
(
"centerNumber"
,
userAccount
.
getCenterNumber
());
contentValues
.
put
(
"accountStatus"
,
userAccount
.
getAccountStatus
());
contentValues
.
put
(
"imFlag"
,
userAccount
.
isImFlag
());
contentValues
.
put
(
"cusRoleId"
,
userAccount
.
getCusRoleId
());
contentValues
.
put
(
"status"
,
userAccount
.
getStatus
());
contentValues
.
put
(
"topFlag"
,
userAccount
.
getTopFlag
());
contentValues
.
put
(
"sortFlag"
,
userAccount
.
getSortFlag
());
contentValues
.
put
(
"fuseWork"
,
userAccount
.
getFuseWork
());
contentValues
.
put
(
"callV6Flag"
,
userAccount
.
getCallV6Flag
());
contentValues
.
put
(
"callV1Flag"
,
userAccount
.
getCallV1Flag
());
contentValues
.
put
(
"transferAuditFlag"
,
userAccount
.
getTransferAuditFlag
());
int
kbVersion
=
1
;
if
(
"6"
.
contains
(
SobotStringUtils
.
checkStringIsNull
(
userAccount
.
getKbVersion
())))
{
kbVersion
=
6
;
}
contentValues
.
put
(
"kbVersion"
,
kbVersion
);
contentValues
.
put
(
"companyId"
,
userAccount
.
getCompanyId
());
contentValues
.
put
(
"local_language"
,
userAccount
.
getLanguage
());
contentValues
.
put
(
LoginUserEntity
.
ACCESS_TOKEN
,
userAccount
.
getAccess_token
());
contentValues
.
put
(
LoginUserEntity
.
LOGIN_TIME
,
userAccount
.
getLogin_time
());
contentValues
.
put
(
"login_account"
,
userAccount
.
getLoginAccount
());
contentValues
.
put
(
"login_pwd"
,
userAccount
.
getLoginPwd
());
contentValues
.
put
(
"wslinkDefault"
,
userAccount
.
getWslinkDefault
());
return
contentValues
;
}
public
void
saveUser
(
LoginUserEntity
user
)
{
insert
(
user
);
}
/**
* 获取最近用户记录 按日期倒序
*/
public
LoginUserEntity
getCurUser
()
{
List
<
LoginUserEntity
>
list
=
query
(
null
,
null
,
null
,
null
,
null
,
null
,
null
);
return
list
.
size
()
>
0
?
list
.
get
(
0
)
:
null
;
}
}
sobot_common/src/main/java/com/sobot/common/login/db/ServiceInfoManager.java
View file @
626141c5
...
...
@@ -6,7 +6,6 @@ import android.content.ContentValues;
import
android.content.Context
;
import
android.database.Cursor
;
import
com.sobot.common.login.model.ServiceFunctionVoModel
;
import
com.sobot.common.login.model.SobotServiceInfoModel
;
import
com.sobot.common.utils.SobotGlobalContext
;
import
com.sobot.gson.SobotGsonUtil
;
...
...
@@ -30,7 +29,7 @@ public class ServiceInfoManager extends SobotCommonDao<SobotServiceInfoModel> {
//第一次判空
if
(
mInstance
==
null
)
{
//进入同步区域
synchronized
(
LoginUser
Manager
.
class
)
{
synchronized
(
ServiceInfo
Manager
.
class
)
{
//第二次判空
if
(
mInstance
==
null
)
{
mInstance
=
new
ServiceInfoManager
(
SobotGlobalContext
.
getAppContext
());
...
...
@@ -42,7 +41,7 @@ public class ServiceInfoManager extends SobotCommonDao<SobotServiceInfoModel> {
@Override
public
String
getTableName
()
{
return
SobotCommonDBHelper
.
TABLE_
SERVICE
_INFO
;
return
SobotCommonDBHelper
.
TABLE_
LOGIN_USER
_INFO
;
}
@Override
...
...
@@ -54,22 +53,44 @@ public class ServiceInfoManager extends SobotCommonDao<SobotServiceInfoModel> {
@Override
public
SobotServiceInfoModel
parseCursorToBean
(
Cursor
cursor
)
{
SobotServiceInfoModel
model
=
new
SobotServiceInfoModel
();
model
.
setTempId
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"tempId"
)));
model
.
setServiceNick
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"nickName"
)));
model
.
setMaxAccept
(
cursor
.
getInt
(
cursor
.
getColumnIndex
(
"maxAccept"
)));
model
.
setBlackFunction
(
cursor
.
getInt
(
cursor
.
getColumnIndex
(
"blackFunction"
)));
model
.
setTransferFunction
(
cursor
.
getInt
(
cursor
.
getColumnIndex
(
"transferFunction"
)));
model
.
setCompanyName
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"companyName"
)));
model
.
setPu
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"pu"
)));
model
.
setPuid
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"puid"
)));
model
.
setToken
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"token"
)));
model
.
setCusRoleName
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"cusRoleName"
)));
model
.
setCenterNumber
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"centerNumber"
)));
model
.
setAccountStatus
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"accountStatus"
)));
model
.
setImFlag
(
cursor
.
getInt
(
cursor
.
getColumnIndex
(
"imFlag"
)));
model
.
setCusRoleId
(
cursor
.
getInt
(
cursor
.
getColumnIndex
(
"cusRoleId"
)));
model
.
setStatus
(
cursor
.
getInt
(
cursor
.
getColumnIndex
(
"status"
)));
model
.
setTopFlag
(
cursor
.
getInt
(
cursor
.
getColumnIndex
(
"topFlag"
)));
model
.
setSortFlag
(
cursor
.
getInt
(
cursor
.
getColumnIndex
(
"sortFlag"
)));
model
.
setFuseWork
(
cursor
.
getInt
(
cursor
.
getColumnIndex
(
"fuseWork"
)));
model
.
setCallV6Flag
(
cursor
.
getInt
(
cursor
.
getColumnIndex
(
"callV6Flag"
)));
model
.
setCallV1Flag
(
cursor
.
getInt
(
cursor
.
getColumnIndex
(
"callV1Flag"
)));
model
.
setTransferAuditFlag
(
cursor
.
getInt
(
cursor
.
getColumnIndex
(
"transferAuditFlag"
)));
model
.
setKbVersion
(
cursor
.
getInt
(
cursor
.
getColumnIndex
(
"kbVersion"
))
+
""
);
model
.
setRobotVersion
(
cursor
.
getInt
(
cursor
.
getColumnIndex
(
"robotVersion"
))
+
""
);
model
.
setOnlineVersion
(
cursor
.
getInt
(
cursor
.
getColumnIndex
(
"onlineVersion"
))
+
""
);
model
.
setCompanyId
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"companyId"
)));
model
.
setLanguage
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"local_language"
)));
model
.
setAccess_token
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
SobotServiceInfoModel
.
ACCESS_TOKEN
)));
model
.
setLogin_time
(
cursor
.
getLong
(
cursor
.
getColumnIndex
(
SobotServiceInfoModel
.
LOGIN_TIME
)));
model
.
setLoginAccount
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"login_account"
)));
model
.
setLoginPwd
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"login_pwd"
)));
model
.
setWslinkDefault
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"wslinkDefault"
)));
model
.
setServiceId
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"serviceId"
)));
model
.
setServiceName
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"serviceName"
)));
model
.
setCusRoleId
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"cusRoleId"
)));
model
.
setCusRoleName
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"cusRoleName"
)));
model
.
setServiceLanguage
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"serviceLanguage"
)));
model
.
setNewBossSwitch
(
cursor
.
getInt
(
cursor
.
getColumnIndex
(
"newBossSwitch"
)));
model
.
setRegion
(
cursor
.
getInt
(
cursor
.
getColumnIndex
(
"region"
)));
String
functionStr
=
cursor
.
getString
(
cursor
.
getColumnIndex
(
"functionStr"
));
if
(!
SobotStringUtils
.
isEmpty
(
functionStr
))
{
List
<
ServiceFunctionVoModel
>
list
=
SobotGsonUtil
.
jsonToBeans
(
functionStr
,
new
TypeToken
<
List
<
ServiceFunctionVoModel
>>()
{
}.
getType
());
model
.
setFunctionStr
(
list
);
}
model
.
setCompanyId
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"companyId"
)));
model
.
setCallV6Flag
(
cursor
.
getInt
(
cursor
.
getColumnIndex
(
"callV6Flag"
)));
model
.
setLanguage
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"language"
)));
model
.
setTimezone
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"timezone"
)));
model
.
setTimezoneId
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"timezoneId"
)));
model
.
setPhoneNo
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"phoneNo"
)));
...
...
@@ -85,19 +106,49 @@ public class ServiceInfoManager extends SobotCommonDao<SobotServiceInfoModel> {
@Override
public
ContentValues
getContentValues
(
SobotServiceInfoModel
infoModel
)
{
ContentValues
contentValues
=
new
ContentValues
();
contentValues
.
put
(
"_id"
,
8888
);
contentValues
.
put
(
"tempId"
,
infoModel
.
getTempId
());
contentValues
.
put
(
"serviceNick"
,
infoModel
.
getServiceNick
());
contentValues
.
put
(
"maxAccept"
,
infoModel
.
getMaxAccept
());
contentValues
.
put
(
"blackFunction"
,
infoModel
.
getBlackFunction
());
contentValues
.
put
(
"transferFunction"
,
infoModel
.
getTransferFunction
());
contentValues
.
put
(
"faceImg"
,
infoModel
.
getFaceImg
());
contentValues
.
put
(
"companyName"
,
infoModel
.
getCompanyName
());
contentValues
.
put
(
"pu"
,
infoModel
.
getPu
());
contentValues
.
put
(
"puid"
,
infoModel
.
getPuid
());
contentValues
.
put
(
"token"
,
infoModel
.
getToken
());
contentValues
.
put
(
"cusRoleName"
,
infoModel
.
getCusRoleName
());
contentValues
.
put
(
"centerNumber"
,
infoModel
.
getCenterNumber
());
contentValues
.
put
(
"accountStatus"
,
infoModel
.
getAccountStatus
());
contentValues
.
put
(
"imFlag"
,
infoModel
.
isImFlag
());
contentValues
.
put
(
"cusRoleId"
,
infoModel
.
getCusRoleId
());
contentValues
.
put
(
"status"
,
infoModel
.
getStatus
());
contentValues
.
put
(
"topFlag"
,
infoModel
.
getTopFlag
());
contentValues
.
put
(
"sortFlag"
,
infoModel
.
getSortFlag
());
contentValues
.
put
(
"fuseWork"
,
infoModel
.
getFuseWork
());
contentValues
.
put
(
"callV6Flag"
,
infoModel
.
getCallV6Flag
());
contentValues
.
put
(
"callV1Flag"
,
infoModel
.
getCallV1Flag
());
contentValues
.
put
(
"transferAuditFlag"
,
infoModel
.
getTransferAuditFlag
());
int
kbVersion
=
1
;
if
(
"6"
.
contains
(
SobotStringUtils
.
checkStringIsNull
(
infoModel
.
getKbVersion
())))
{
kbVersion
=
6
;
}
contentValues
.
put
(
"kbVersion"
,
kbVersion
);
contentValues
.
put
(
"robotVersion"
,
infoModel
.
getRobotVersion
());
contentValues
.
put
(
"onlineVersion"
,
infoModel
.
getOnlineVersion
());
contentValues
.
put
(
"companyId"
,
infoModel
.
getCompanyId
());
contentValues
.
put
(
"local_language"
,
infoModel
.
getLanguage
());
contentValues
.
put
(
SobotServiceInfoModel
.
ACCESS_TOKEN
,
infoModel
.
getAccess_token
());
contentValues
.
put
(
SobotServiceInfoModel
.
LOGIN_TIME
,
infoModel
.
getLogin_time
());
contentValues
.
put
(
"login_account"
,
infoModel
.
getLoginAccount
());
contentValues
.
put
(
"login_pwd"
,
infoModel
.
getLoginPwd
());
contentValues
.
put
(
"wslinkDefault"
,
infoModel
.
getWslinkDefault
());
contentValues
.
put
(
"serviceId"
,
infoModel
.
getServiceId
());
contentValues
.
put
(
"serviceName"
,
infoModel
.
getServiceName
());
contentValues
.
put
(
"cusRoleId"
,
infoModel
.
getCusRoleId
());
contentValues
.
put
(
"cusRoleName"
,
infoModel
.
getCusRoleName
());
contentValues
.
put
(
"serviceLanguage"
,
infoModel
.
getServiceLanguage
());
contentValues
.
put
(
"newBossSwitch"
,
infoModel
.
getNewBossSwitch
());
contentValues
.
put
(
"region"
,
infoModel
.
getRegion
());
if
(!
SobotStringUtils
.
isEmpty
(
infoModel
.
getFunctionStr
()))
{
contentValues
.
put
(
"functionStr"
,
SobotGsonUtil
.
beanToJson
(
infoModel
.
getFunctionStr
()));
}
contentValues
.
put
(
"companyId"
,
infoModel
.
getCompanyId
());
contentValues
.
put
(
"callV6Flag"
,
infoModel
.
getCallV6Flag
());
contentValues
.
put
(
"language"
,
infoModel
.
getLanguage
());
contentValues
.
put
(
"timezone"
,
infoModel
.
getTimezone
());
contentValues
.
put
(
"timezoneId"
,
infoModel
.
getTimezoneId
());
contentValues
.
put
(
"phoneNo"
,
infoModel
.
getPhoneNo
());
...
...
sobot_common/src/main/java/com/sobot/common/login/db/SobotCommonDBHelper.java
View file @
626141c5
...
...
@@ -4,7 +4,6 @@ import android.content.Context;
import
android.database.sqlite.SQLiteDatabase
;
import
android.database.sqlite.SQLiteOpenHelper
;
import
com.sobot.common.login.model.LoginUserEntity
;
import
com.sobot.common.login.model.SobotServiceInfoModel
;
import
java.util.concurrent.locks.Lock
;
...
...
@@ -17,10 +16,12 @@ class SobotCommonDBHelper extends SQLiteOpenHelper {
private
static
final
String
DB_CACHE_NAME
=
"sobot_common.db"
;
// private static final int DB_CACHE_VERSION = 1;
private
static
final
int
DB_CACHE_VERSION
=
5
;
static
final
String
TABLE_LOGIN_USER
=
"login_user"
;
private
static
final
int
DB_CACHE_VERSION
=
6
;
static
final
String
TABLE_LOGIN_USER
=
"login_user"
;
//废弃
static
final
String
TABLE_SOBOT_HOST
=
"sobot_host"
;
static
final
String
TABLE_SERVICE_INFO
=
"sobot_service"
;
static
final
String
TABLE_SERVICE_INFO
=
"sobot_service"
;
//废弃
static
final
String
TABLE_LOGIN_USER_INFO
=
"login_user_info"
;
//登录信息表
static
final
String
TABLE_LOGIN_USER_FUN_INFO
=
"login_user_fun_info"
;
//权限表
static
final
Lock
lock
=
new
ReentrantLock
();
...
...
@@ -69,7 +70,6 @@ class SobotCommonDBHelper extends SQLiteOpenHelper {
"transferFunction INTEGER DEFAULT 1, "
+
"face varchar(300), "
+
"companyName varchar(300), "
+
"appKey varchar(40), "
+
"sid varchar(40), "
+
"pu varchar(40), "
+
"puid varchar(40), "
+
...
...
@@ -130,10 +130,10 @@ class SobotCommonDBHelper extends SQLiteOpenHelper {
switch
(
oldVersion
)
{
case
1
:
String
sql
=
"ALTER TABLE "
+
TABLE_LOGIN_USER
+
" ADD COLUMN "
+
LoginUserEntity
.
ACCESS_TOKEN
+
" VARCHAR(700)"
;
+
" ADD COLUMN "
+
SobotServiceInfoModel
.
ACCESS_TOKEN
+
" VARCHAR(700)"
;
db
.
execSQL
(
sql
);
// 登录表添加ACCESS_TOKEN
String
sql1
=
"ALTER TABLE "
+
TABLE_LOGIN_USER
+
" ADD COLUMN "
+
LoginUserEntity
.
LOGIN_TIME
+
" INTEGER"
;
+
" ADD COLUMN "
+
SobotServiceInfoModel
.
LOGIN_TIME
+
" INTEGER"
;
db
.
execSQL
(
sql1
);
// 登录表添加登录时间
break
;
case
2
:
...
...
@@ -157,6 +157,62 @@ class SobotCommonDBHelper extends SQLiteOpenHelper {
+
" ADD COLUMN wslinkDefault VARCHAR(40)"
;
db
.
execSQL
(
sql6
);
// 登录表添加通道信息2
break
;
case
5
:
// 删除表的SQL语句
String
LOGIN_USER_TABLE
=
"DROP TABLE IF EXISTS "
+
TABLE_LOGIN_USER
;
db
.
execSQL
(
LOGIN_USER_TABLE
);
// 删除表的SQL语句
String
SERVICE_INFO_TABLE
=
"DROP TABLE IF EXISTS "
+
TABLE_SERVICE_INFO
;
db
.
execSQL
(
SERVICE_INFO_TABLE
);
String
sql7
=
"CREATE TABLE IF NOT EXISTS "
+
TABLE_LOGIN_USER_INFO
+
"(_id INTEGER PRIMARY KEY AUTOINCREMENT,"
+
"tempId VARCHAR(80),"
+
"serviceNick VARCHAR(300),"
+
"faceImg VARCHAR(300),"
+
"maxAccept INTEGER,"
+
"blackFunction INTEGER DEFAULT 1,"
+
"transferFunction INTEGER DEFAULT 1, "
+
"companyName VARCHAR(300), "
+
"pu VARCHAR(40), "
+
"puid VARCHAR(40), "
+
"token VARCHAR(500), "
+
"cusRoleName VARCHAR(200), "
+
"centerNumber VARCHAR(40), "
+
"accountStatus VARCHAR(2), "
+
"imFlag INTEGER, "
+
"cusRoleId INTEGER, "
+
"status INTEGER DEFAULT 1, "
+
"topFlag INTEGER, "
+
"sortFlag INTEGER , "
+
"fuseWork INTEGER , "
+
"callV6Flag INTEGER , "
+
"callV1Flag INTEGER , "
+
"transferAuditFlag INTEGER , "
+
"kbVersion INTEGER , "
+
"robotVersion INTEGER , "
+
"onlineVersion INTEGER , "
+
"local_language VARCHAR(10) , "
+
"serviceId VARCHAR(40),"
+
"serviceName VARCHAR(600),"
+
"newBossSwitch INTEGER,"
+
"region INTEGER,"
+
"serviceLanguage VARCHAR(12),"
+
"phoneNo VARCHAR(20),"
+
"globalPermissions VARCHAR(300),"
+
"access_token VARCHAR(700),"
+
"login_time INTEGER,"
+
"login_account VARCHAR(40),"
+
"login_pwd VARCHAR(40),"
+
"wslinkDefault VARCHAR(40),"
+
"timezone VARCHAR(15),"
+
"timezoneId VARCHAR(30),"
+
"companyId VARCHAR(40))"
;
db
.
execSQL
(
sql7
);
String
sql8
=
"CREATE TABLE IF NOT EXISTS "
+
TABLE_LOGIN_USER_FUN_INFO
+
"(_id INTEGER PRIMARY KEY AUTOINCREMENT,"
+
"id VARCHAR(20),"
+
"checkedCode INTEGER,"
+
"code VARCHAR(40))"
;
db
.
execSQL
(
sql8
);
break
;
default
:
break
;
}
...
...
sobot_common/src/main/java/com/sobot/common/login/model/LoginUserEntity.java
deleted
100644 → 0
View file @
73da01cf
package
com
.
sobot
.
common
.
login
.
model
;
import
com.sobot.gson.annotations.Expose
;
import
com.sobot.gson.annotations.SerializedName
;
import
java.io.Serializable
;
import
java.util.List
;
import
java.util.Map
;
public
class
LoginUserEntity
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
String
loginAccount
;
//登录账号
private
String
loginPwd
;
//登录密码
private
String
tempId
;
//客服temp-id
private
String
nickName
;
//客服昵称
private
String
staffName
;
//客服名称
private
int
maxServiceCount
;
//最大接待量
private
int
blackFunction
=
1
;
//是否有拉黑权限 0 没有 1 有
private
int
transferFunction
=
1
;
//是否有转接权限 0 没有 1 有
private
String
face
;
//头像url
private
int
status
;
//账号状态 1正常0登录邮箱或密码不正确 2用户已在pc端登录
private
String
companyId
;
//sysNum
private
String
appKey
;
private
String
sid
;
private
String
pu
;
private
String
puid
;
private
String
token
;
private
int
imFlag
;
//0是工单客服 1是在线客服
private
int
cusRoleId
;
//身份id 3333:超级管理员;1111:在线客服;2222:管理员
private
String
cusRoleName
;
//身份名称 客服身份
private
String
aid
;
//userid
private
int
topFlag
;
//星标置顶 0不置顶 1置顶
private
int
sortFlag
;
//会话排序 0 按接入顺序 1 按新消息时间
private
String
centerNumber
;
//如果不为空,说明开通了呼叫功能
private
int
fuseWork
;
//1-存在融合工作台,使用新版服务总计 0-没有融合工作台
/**
* 1 账号开通v6;其它是v1
*/
private
int
callV6Flag
;
private
int
callV1Flag
;
//是否是V1,方便做那个呼叫v1/v6切换的功能
private
Map
<
String
,
Boolean
>
ticketFunction
;
//1222 可删除工单 ;1223 可删除工单回复;1224 可关闭工单; 1225 可激活工单 1230 工单操作历史权限
// 1231-工单状态 ; 1611-查看App客户中心
private
int
transferAuditFlag
;
//转接审核开关 0关闭 1开启
private
String
companyName
;
//公司名称
private
String
accountStatus
;
//企业账号版本:旗舰版
private
String
kbVersion
;
//智能回复,查询版本v6/v1
private
String
language
;
//国际化指定语言 3.1.3新增 为空时,默认中文
private
String
access_token
;
//呼叫v6
public
static
final
String
ACCESS_TOKEN
=
"access_token"
;
//呼叫v6 accessToken
private
long
login_time
;
//登录时间戳
public
static
final
String
LOGIN_TIME
=
"login_time"
;
public
String
getCompanyName
()
{
return
companyName
;
}
public
void
setCompanyName
(
String
companyName
)
{
this
.
companyName
=
companyName
;
}
public
String
getAccountStatus
()
{
return
accountStatus
;
}
public
void
setAccountStatus
(
String
accountStatus
)
{
this
.
accountStatus
=
accountStatus
;
}
@Expose
@SerializedName
(
"wslink.bak"
)
private
List
<
String
>
wslinkBak
;
//通道地址
@Expose
@SerializedName
(
"wslink.default"
)
private
String
wslinkDefault
;
//通道默认地址
public
String
getAid
()
{
return
aid
;
}
public
void
setAid
(
String
aid
)
{
this
.
aid
=
aid
;
}
public
int
getBlackFunction
()
{
return
blackFunction
;
}
public
void
setBlackFunction
(
int
blackFunction
)
{
this
.
blackFunction
=
blackFunction
;
}
public
int
getTransferFunction
()
{
return
transferFunction
;
}
public
void
setTransferFunction
(
int
transferFunction
)
{
this
.
transferFunction
=
transferFunction
;
}
public
List
<
String
>
getWslinkBak
()
{
return
wslinkBak
;
}
public
void
setWslinkBak
(
List
<
String
>
wslinkBak
)
{
this
.
wslinkBak
=
wslinkBak
;
}
public
String
getWslinkDefault
()
{
return
wslinkDefault
;
}
public
void
setWslinkDefault
(
String
wslinkDefault
)
{
this
.
wslinkDefault
=
wslinkDefault
;
}
public
int
getCusRoleId
()
{
return
cusRoleId
;
}
public
void
setCusRoleId
(
int
cusRoleId
)
{
this
.
cusRoleId
=
cusRoleId
;
}
public
String
getCusRoleName
()
{
return
cusRoleName
;
}
public
void
setCusRoleName
(
String
cusRoleName
)
{
this
.
cusRoleName
=
cusRoleName
;
}
public
String
getToken
()
{
return
token
;
}
public
void
setToken
(
String
token
)
{
this
.
token
=
token
;
}
public
int
isImFlag
()
{
return
imFlag
;
}
public
void
setImFlag
(
int
imFlag
)
{
this
.
imFlag
=
imFlag
;
}
public
String
getPu
()
{
return
pu
;
}
public
void
setPu
(
String
pu
)
{
this
.
pu
=
pu
;
}
public
String
getPuid
()
{
return
puid
;
}
public
void
setPuid
(
String
puid
)
{
this
.
puid
=
puid
;
}
public
String
getTempId
()
{
return
tempId
;
}
public
void
setTempId
(
String
tempId
)
{
this
.
tempId
=
tempId
;
}
public
String
getNickName
()
{
return
nickName
;
}
public
void
setNickName
(
String
nickName
)
{
this
.
nickName
=
nickName
;
}
public
String
getStaffName
()
{
return
staffName
;
}
public
void
setStaffName
(
String
staffName
)
{
this
.
staffName
=
staffName
;
}
public
int
getMaxServiceCount
()
{
return
maxServiceCount
;
}
public
void
setMaxServiceCount
(
int
maxServiceCount
)
{
this
.
maxServiceCount
=
maxServiceCount
;
}
public
String
getFace
()
{
return
face
;
}
public
void
setFace
(
String
face
)
{
this
.
face
=
face
;
}
public
int
getStatus
()
{
return
status
;
}
public
void
setStatus
(
int
status
)
{
this
.
status
=
status
;
}
public
String
getCompanyId
()
{
return
companyId
;
}
public
void
setCompanyId
(
String
companyId
)
{
this
.
companyId
=
companyId
;
}
public
String
getAppKey
()
{
return
appKey
;
}
public
void
setAppKey
(
String
appKey
)
{
this
.
appKey
=
appKey
;
}
public
String
getSid
()
{
return
sid
;
}
public
void
setSid
(
String
sid
)
{
this
.
sid
=
sid
;
}
public
int
getTopFlag
()
{
return
topFlag
;
}
public
void
setTopFlag
(
int
topFlag
)
{
this
.
topFlag
=
topFlag
;
}
public
int
getSortFlag
()
{
return
sortFlag
;
}
public
void
setSortFlag
(
int
sortFlag
)
{
this
.
sortFlag
=
sortFlag
;
}
public
String
getCenterNumber
()
{
return
centerNumber
;
}
public
void
setCenterNumber
(
String
centerNumber
)
{
this
.
centerNumber
=
centerNumber
;
}
public
Map
<
String
,
Boolean
>
getTicketFunction
()
{
return
ticketFunction
;
}
public
void
setTicketFunction
(
Map
<
String
,
Boolean
>
ticketFunction
)
{
this
.
ticketFunction
=
ticketFunction
;
}
public
boolean
getTransferAuditFlag
()
{
return
transferAuditFlag
==
1
?
true
:
false
;
}
public
void
setTransferAuditFlag
(
int
transferAuditFlag
)
{
this
.
transferAuditFlag
=
transferAuditFlag
;
}
public
int
getFuseWork
()
{
return
fuseWork
;
}
public
void
setFuseWork
(
int
fuseWork
)
{
this
.
fuseWork
=
fuseWork
;
}
public
int
getCallV6Flag
()
{
return
callV6Flag
;
}
public
void
setCallV6Flag
(
int
callV6Flag
)
{
this
.
callV6Flag
=
callV6Flag
;
}
public
int
getCallV1Flag
()
{
return
callV1Flag
;
}
public
void
setCallV1Flag
(
int
callV1Flag
)
{
this
.
callV1Flag
=
callV1Flag
;
}
public
String
getKbVersion
()
{
return
kbVersion
;
}
public
void
setKbVersion
(
String
kbVersion
)
{
this
.
kbVersion
=
kbVersion
;
}
public
String
getLanguage
()
{
return
language
;
}
public
void
setLanguage
(
String
language
)
{
this
.
language
=
language
;
}
public
String
getAccess_token
()
{
return
access_token
;
}
public
void
setAccess_token
(
String
access_token
)
{
this
.
access_token
=
access_token
;
}
public
long
getLogin_time
()
{
return
login_time
;
}
public
void
setLogin_time
(
long
login_time
)
{
this
.
login_time
=
login_time
;
}
public
String
getLoginAccount
()
{
return
loginAccount
;
}
public
void
setLoginAccount
(
String
loginAccount
)
{
this
.
loginAccount
=
loginAccount
;
}
public
String
getLoginPwd
()
{
return
loginPwd
;
}
public
void
setLoginPwd
(
String
loginPwd
)
{
this
.
loginPwd
=
loginPwd
;
}
@Override
public
String
toString
()
{
return
"LoginUserEntity{"
+
"loginAccount='"
+
loginAccount
+
'\''
+
", loginPwd='"
+
loginPwd
+
'\''
+
", tempId='"
+
tempId
+
'\''
+
", nickName='"
+
nickName
+
'\''
+
", staffName='"
+
staffName
+
'\''
+
", maxServiceCount="
+
maxServiceCount
+
", blackFunction="
+
blackFunction
+
", transferFunction="
+
transferFunction
+
", face='"
+
face
+
'\''
+
", status="
+
status
+
", companyId='"
+
companyId
+
'\''
+
", appKey='"
+
appKey
+
'\''
+
", sid='"
+
sid
+
'\''
+
", pu='"
+
pu
+
'\''
+
", puid='"
+
puid
+
'\''
+
", token='"
+
token
+
'\''
+
", imFlag="
+
imFlag
+
", cusRoleId="
+
cusRoleId
+
", cusRoleName='"
+
cusRoleName
+
'\''
+
", aid='"
+
aid
+
'\''
+
", topFlag="
+
topFlag
+
", sortFlag="
+
sortFlag
+
", centerNumber='"
+
centerNumber
+
'\''
+
", fuseWork="
+
fuseWork
+
", callV6Flag="
+
callV6Flag
+
", callV1Flag="
+
callV1Flag
+
", ticketFunction="
+
ticketFunction
+
", transferAuditFlag="
+
transferAuditFlag
+
", companyName='"
+
companyName
+
'\''
+
", accountStatus='"
+
accountStatus
+
'\''
+
", kbVersion='"
+
kbVersion
+
'\''
+
", language='"
+
language
+
'\''
+
", access_token='"
+
access_token
+
'\''
+
", login_time="
+
login_time
+
", wslinkBak="
+
wslinkBak
+
", wslinkDefault='"
+
wslinkDefault
+
'\''
+
'}'
;
}
}
sobot_common/src/main/java/com/sobot/common/login/model/OnlineUserEntity.java
0 → 100644
View file @
626141c5
package
com
.
sobot
.
common
.
login
.
model
;
import
com.sobot.gson.annotations.Expose
;
import
com.sobot.gson.annotations.SerializedName
;
import
java.io.Serializable
;
import
java.util.List
;
//在线接口返回的客服信息
public
class
OnlineUserEntity
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
String
tempId
;
//客服temp-id
private
int
blackFunction
=
1
;
//是否有拉黑权限 0 没有 1 有
private
int
transferFunction
=
1
;
//是否有转接权限 0 没有 1 有
private
int
status
;
//账号状态 1正常0登录邮箱或密码不正确 2用户已在pc端登录
private
String
pu
;
private
String
puid
;
private
int
imFlag
;
//0是工单客服 1是在线客服
private
int
topFlag
;
//星标置顶 0不置顶 1置顶
private
int
sortFlag
;
//会话排序 0 按接入顺序 1 按新消息时间
private
String
centerNumber
;
//如果不为空,说明开通了呼叫功能
private
int
fuseWork
;
//1-存在融合工作台,使用新版服务总计 0-没有融合工作台
private
int
transferAuditFlag
;
//转接审核开关 0关闭 1开启
private
String
kbVersion
;
//智能回复,查询版本v6/v1
private
String
robotVersion
;
//机器人,查询版本v6/v1
private
String
onlineVersion
;
//在线,查询版本v6/v1
@Expose
@SerializedName
(
"wslink.bak"
)
private
List
<
String
>
wslinkBak
;
//通道地址
@Expose
@SerializedName
(
"wslink.default"
)
private
String
wslinkDefault
;
//通道默认地址
public
String
getTempId
()
{
return
tempId
;
}
public
void
setTempId
(
String
tempId
)
{
this
.
tempId
=
tempId
;
}
public
int
getBlackFunction
()
{
return
blackFunction
;
}
public
void
setBlackFunction
(
int
blackFunction
)
{
this
.
blackFunction
=
blackFunction
;
}
public
int
getTransferFunction
()
{
return
transferFunction
;
}
public
void
setTransferFunction
(
int
transferFunction
)
{
this
.
transferFunction
=
transferFunction
;
}
public
int
getStatus
()
{
return
status
;
}
public
void
setStatus
(
int
status
)
{
this
.
status
=
status
;
}
public
String
getPu
()
{
return
pu
;
}
public
void
setPu
(
String
pu
)
{
this
.
pu
=
pu
;
}
public
String
getPuid
()
{
return
puid
;
}
public
void
setPuid
(
String
puid
)
{
this
.
puid
=
puid
;
}
public
int
getImFlag
()
{
return
imFlag
;
}
public
void
setImFlag
(
int
imFlag
)
{
this
.
imFlag
=
imFlag
;
}
public
int
getTopFlag
()
{
return
topFlag
;
}
public
void
setTopFlag
(
int
topFlag
)
{
this
.
topFlag
=
topFlag
;
}
public
int
getSortFlag
()
{
return
sortFlag
;
}
public
void
setSortFlag
(
int
sortFlag
)
{
this
.
sortFlag
=
sortFlag
;
}
public
String
getCenterNumber
()
{
return
centerNumber
;
}
public
void
setCenterNumber
(
String
centerNumber
)
{
this
.
centerNumber
=
centerNumber
;
}
public
int
getFuseWork
()
{
return
fuseWork
;
}
public
void
setFuseWork
(
int
fuseWork
)
{
this
.
fuseWork
=
fuseWork
;
}
public
int
getTransferAuditFlag
()
{
return
transferAuditFlag
;
}
public
void
setTransferAuditFlag
(
int
transferAuditFlag
)
{
this
.
transferAuditFlag
=
transferAuditFlag
;
}
public
String
getKbVersion
()
{
return
kbVersion
;
}
public
void
setKbVersion
(
String
kbVersion
)
{
this
.
kbVersion
=
kbVersion
;
}
public
List
<
String
>
getWslinkBak
()
{
return
wslinkBak
;
}
public
void
setWslinkBak
(
List
<
String
>
wslinkBak
)
{
this
.
wslinkBak
=
wslinkBak
;
}
public
String
getWslinkDefault
()
{
return
wslinkDefault
;
}
public
void
setWslinkDefault
(
String
wslinkDefault
)
{
this
.
wslinkDefault
=
wslinkDefault
;
}
public
String
getRobotVersion
()
{
return
robotVersion
;
}
public
void
setRobotVersion
(
String
robotVersion
)
{
this
.
robotVersion
=
robotVersion
;
}
public
String
getOnlineVersion
()
{
return
onlineVersion
;
}
public
void
setOnlineVersion
(
String
onlineVersion
)
{
this
.
onlineVersion
=
onlineVersion
;
}
}
sobot_common/src/main/java/com/sobot/common/login/model/ServiceFunctionVoModel.java
View file @
626141c5
...
...
@@ -6,6 +6,10 @@ import java.io.Serializable;
public
class
ServiceFunctionVoModel
implements
Serializable
{
//旧版console权限标识
private
String
id
;
//旧版console权限是否开启
private
boolean
checked
;
//旧版console权限是否开启(入库使用) 0 没有,1开启 值从checked来
private
int
checkedCode
;
//新版console权限标识
private
String
code
;
//是否有子类权限
...
...
@@ -38,12 +42,30 @@ public class ServiceFunctionVoModel implements Serializable {
this
.
hasChildren
=
hasChildren
;
}
public
boolean
isChecked
()
{
return
checked
;
}
public
void
setChecked
(
boolean
checked
)
{
this
.
checked
=
checked
;
}
public
int
getCheckedCode
()
{
return
checkedCode
;
}
public
void
setCheckedCode
(
int
checkedCode
)
{
this
.
checkedCode
=
checkedCode
;
}
@Override
public
String
toString
()
{
return
"S
obotCus
FunctionVoModel{"
+
return
"S
ervice
FunctionVoModel{"
+
"id='"
+
id
+
'\''
+
"code='"
+
code
+
'\''
+
"cohasChildrende='"
+
hasChildren
+
'\''
+
", checked="
+
checked
+
", checkedCode="
+
checkedCode
+
", code='"
+
code
+
'\''
+
", hasChildren="
+
hasChildren
+
'}'
;
}
}
sobot_common/src/main/java/com/sobot/common/login/model/SobotServiceInfoModel.java
View file @
626141c5
package
com
.
sobot
.
common
.
login
.
model
;
import
com.sobot.gson.annotations.Expose
;
import
com.sobot.gson.annotations.SerializedName
;
import
java.io.Serializable
;
import
java.util.List
;
import
java.util.Map
;
/**
* 登录后的客服信息
...
...
@@ -17,13 +21,13 @@ public class SobotServiceInfoModel implements Serializable {
*/
private
String
serviceName
;
/**
*
角色id
*
客服昵称
*/
private
String
cusRoleId
;
private
String
serviceNick
;
/**
*
角色名称
*
客服头像
*/
private
String
cusRoleName
;
private
String
faceImg
;
/**
* 0 只用旧console 其他都是新console;
*/
...
...
@@ -37,7 +41,6 @@ public class SobotServiceInfoModel implements Serializable {
//区域环境(0国内 1国外)
private
int
region
;
/**
* 公司id
*/
...
...
@@ -68,7 +71,6 @@ public class SobotServiceInfoModel implements Serializable {
public
static
final
String
TIMEZONEID
=
"timezoneId"
;
/**
* 手机号
*/
...
...
@@ -84,6 +86,261 @@ public class SobotServiceInfoModel implements Serializable {
//是否是号码脱敏,true 脱敏,false 明文
private
boolean
hideFlag
;
private
static
final
long
serialVersionUID
=
1L
;
private
String
loginAccount
;
//登录账号
private
String
loginPwd
;
//登录密码
private
String
tempId
;
//客服temp-id
private
int
maxAccept
;
//最大接待量
private
int
blackFunction
=
1
;
//是否有拉黑权限 0 没有 1 有
private
int
transferFunction
=
1
;
//是否有转接权限 0 没有 1 有
private
int
status
;
//账号状态 1正常0登录邮箱或密码不正确 2用户已在pc端登录
private
String
pu
;
private
String
puid
;
private
String
token
;
private
int
imFlag
;
//0是工单客服 1是在线客服
private
int
cusRoleId
;
//身份id 3333:超级管理员;1111:在线客服;2222:管理员
private
String
cusRoleName
;
//身份名称 客服身份
private
int
topFlag
;
//星标置顶 0不置顶 1置顶
private
int
sortFlag
;
//会话排序 0 按接入顺序 1 按新消息时间
private
String
centerNumber
;
//如果不为空,说明开通了呼叫功能
private
int
fuseWork
;
//1-存在融合工作台,使用新版服务总计 0-没有融合工作台
private
int
callV1Flag
;
//是否是V1,方便做那个呼叫v1/v6切换的功能
private
int
transferAuditFlag
;
//转接审核开关 0关闭 1开启
private
String
companyName
;
//公司名称
private
String
accountStatus
;
//企业账号版本:旗舰版
private
String
kbVersion
;
//智能回复,查询版本v6/v1
private
String
robotVersion
;
//机器人,查询版本v6/v1
private
String
onlineVersion
;
//在线,查询版本v6/v1
private
String
access_token
;
//呼叫v6
public
static
final
String
ACCESS_TOKEN
=
"access_token"
;
//呼叫v6 accessToken
private
long
login_time
;
//登录时间戳
public
static
final
String
LOGIN_TIME
=
"login_time"
;
public
String
getCompanyName
()
{
return
companyName
;
}
public
void
setCompanyName
(
String
companyName
)
{
this
.
companyName
=
companyName
;
}
public
String
getAccountStatus
()
{
return
accountStatus
;
}
public
void
setAccountStatus
(
String
accountStatus
)
{
this
.
accountStatus
=
accountStatus
;
}
@Expose
@SerializedName
(
"wslink.bak"
)
private
List
<
String
>
wslinkBak
;
//通道地址
@Expose
@SerializedName
(
"wslink.default"
)
private
String
wslinkDefault
;
//通道默认地址
public
int
getBlackFunction
()
{
return
blackFunction
;
}
public
void
setBlackFunction
(
int
blackFunction
)
{
this
.
blackFunction
=
blackFunction
;
}
public
int
getTransferFunction
()
{
return
transferFunction
;
}
public
void
setTransferFunction
(
int
transferFunction
)
{
this
.
transferFunction
=
transferFunction
;
}
public
List
<
String
>
getWslinkBak
()
{
return
wslinkBak
;
}
public
void
setWslinkBak
(
List
<
String
>
wslinkBak
)
{
this
.
wslinkBak
=
wslinkBak
;
}
public
String
getWslinkDefault
()
{
return
wslinkDefault
;
}
public
void
setWslinkDefault
(
String
wslinkDefault
)
{
this
.
wslinkDefault
=
wslinkDefault
;
}
public
int
getCusRoleId
()
{
return
cusRoleId
;
}
public
void
setCusRoleId
(
int
cusRoleId
)
{
this
.
cusRoleId
=
cusRoleId
;
}
public
String
getCusRoleName
()
{
return
cusRoleName
;
}
public
void
setCusRoleName
(
String
cusRoleName
)
{
this
.
cusRoleName
=
cusRoleName
;
}
public
String
getToken
()
{
return
token
;
}
public
void
setToken
(
String
token
)
{
this
.
token
=
token
;
}
public
int
isImFlag
()
{
return
imFlag
;
}
public
void
setImFlag
(
int
imFlag
)
{
this
.
imFlag
=
imFlag
;
}
public
String
getPu
()
{
return
pu
;
}
public
void
setPu
(
String
pu
)
{
this
.
pu
=
pu
;
}
public
String
getPuid
()
{
return
puid
;
}
public
void
setPuid
(
String
puid
)
{
this
.
puid
=
puid
;
}
public
String
getTempId
()
{
return
tempId
;
}
public
void
setTempId
(
String
tempId
)
{
this
.
tempId
=
tempId
;
}
public
int
getStatus
()
{
return
status
;
}
public
void
setStatus
(
int
status
)
{
this
.
status
=
status
;
}
public
int
getTopFlag
()
{
return
topFlag
;
}
public
void
setTopFlag
(
int
topFlag
)
{
this
.
topFlag
=
topFlag
;
}
public
int
getSortFlag
()
{
return
sortFlag
;
}
public
void
setSortFlag
(
int
sortFlag
)
{
this
.
sortFlag
=
sortFlag
;
}
public
String
getCenterNumber
()
{
return
centerNumber
;
}
public
void
setCenterNumber
(
String
centerNumber
)
{
this
.
centerNumber
=
centerNumber
;
}
public
boolean
getTransferAuditFlag
()
{
return
transferAuditFlag
==
1
?
true
:
false
;
}
public
void
setTransferAuditFlag
(
int
transferAuditFlag
)
{
this
.
transferAuditFlag
=
transferAuditFlag
;
}
public
int
getFuseWork
()
{
return
fuseWork
;
}
public
void
setFuseWork
(
int
fuseWork
)
{
this
.
fuseWork
=
fuseWork
;
}
public
int
getCallV6Flag
()
{
return
callV6Flag
;
}
public
void
setCallV6Flag
(
int
callV6Flag
)
{
this
.
callV6Flag
=
callV6Flag
;
}
public
int
getCallV1Flag
()
{
return
callV1Flag
;
}
public
void
setCallV1Flag
(
int
callV1Flag
)
{
this
.
callV1Flag
=
callV1Flag
;
}
public
String
getKbVersion
()
{
return
kbVersion
;
}
public
void
setKbVersion
(
String
kbVersion
)
{
this
.
kbVersion
=
kbVersion
;
}
public
String
getAccess_token
()
{
return
access_token
;
}
public
void
setAccess_token
(
String
access_token
)
{
this
.
access_token
=
access_token
;
}
public
long
getLogin_time
()
{
return
login_time
;
}
public
void
setLogin_time
(
long
login_time
)
{
this
.
login_time
=
login_time
;
}
public
String
getLoginAccount
()
{
return
loginAccount
;
}
public
void
setLoginAccount
(
String
loginAccount
)
{
this
.
loginAccount
=
loginAccount
;
}
public
String
getLoginPwd
()
{
return
loginPwd
;
}
public
void
setLoginPwd
(
String
loginPwd
)
{
this
.
loginPwd
=
loginPwd
;
}
public
List
<
String
>
getGlobalPermissions
()
{
return
globalPermissions
;
}
...
...
@@ -107,14 +364,6 @@ public class SobotServiceInfoModel implements Serializable {
this
.
companyId
=
companyId
;
}
public
int
getCallV6Flag
()
{
return
callV6Flag
;
}
public
void
setCallV6Flag
(
int
callV6Flag
)
{
this
.
callV6Flag
=
callV6Flag
;
}
public
String
getPhoneNo
()
{
return
phoneNo
;
}
...
...
@@ -131,22 +380,6 @@ public class SobotServiceInfoModel implements Serializable {
this
.
serviceId
=
serviceId
;
}
public
String
getCusRoleId
()
{
return
cusRoleId
;
}
public
void
setCusRoleId
(
String
cusRoleId
)
{
this
.
cusRoleId
=
cusRoleId
;
}
public
String
getCusRoleName
()
{
return
cusRoleName
;
}
public
void
setCusRoleName
(
String
cusRoleName
)
{
this
.
cusRoleName
=
cusRoleName
;
}
public
List
<
ServiceFunctionVoModel
>
getFunctionStr
()
{
return
functionStr
;
}
...
...
@@ -211,25 +444,51 @@ public class SobotServiceInfoModel implements Serializable {
this
.
timezoneId
=
timezoneId
;
}
@Override
public
String
toString
()
{
return
"SobotServiceInfoModel{"
+
"serviceId='"
+
serviceId
+
'\''
+
", serviceName='"
+
serviceName
+
'\''
+
", cusRoleId='"
+
cusRoleId
+
'\''
+
", cusRoleName='"
+
cusRoleName
+
'\''
+
", newBossSwitch="
+
newBossSwitch
+
", functionStr="
+
functionStr
+
", serviceLanguage='"
+
serviceLanguage
+
'\''
+
", region="
+
region
+
", companyId='"
+
companyId
+
'\''
+
", callV6Flag="
+
callV6Flag
+
", language='"
+
language
+
'\''
+
", timezone='"
+
timezone
+
'\''
+
", timezoneId='"
+
timezoneId
+
'\''
+
", phoneNo='"
+
phoneNo
+
'\''
+
", globalPermissions="
+
globalPermissions
+
", hideFlag="
+
hideFlag
+
'}'
;
public
String
getServiceNick
()
{
return
serviceNick
;
}
public
void
setServiceNick
(
String
serviceNick
)
{
this
.
serviceNick
=
serviceNick
;
}
public
String
getFaceImg
()
{
return
faceImg
;
}
public
void
setFaceImg
(
String
faceImg
)
{
this
.
faceImg
=
faceImg
;
}
public
void
setHideFlag
(
boolean
hideFlag
)
{
this
.
hideFlag
=
hideFlag
;
}
public
int
getMaxAccept
()
{
return
maxAccept
;
}
public
void
setMaxAccept
(
int
maxAccept
)
{
this
.
maxAccept
=
maxAccept
;
}
public
int
getImFlag
()
{
return
imFlag
;
}
public
String
getRobotVersion
()
{
return
robotVersion
;
}
public
void
setRobotVersion
(
String
robotVersion
)
{
this
.
robotVersion
=
robotVersion
;
}
public
String
getOnlineVersion
()
{
return
onlineVersion
;
}
public
void
setOnlineVersion
(
String
onlineVersion
)
{
this
.
onlineVersion
=
onlineVersion
;
}
}
sobot_common/src/main/java/com/sobot/common/login/model/TokenModel.java
0 → 100644
View file @
626141c5
package
com
.
sobot
.
common
.
login
.
model
;
import
java.io.Serializable
;
/**
* 开放平台token
*/
public
class
TokenModel
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
Token
item
;
private
String
ret_code
;
private
String
ret_msg
;
public
Token
getItem
()
{
return
item
;
}
public
void
setItem
(
Token
item
)
{
this
.
item
=
item
;
}
public
String
getRet_code
()
{
return
ret_code
;
}
public
void
setRet_code
(
String
ret_code
)
{
this
.
ret_code
=
ret_code
;
}
public
String
getRet_msg
()
{
return
ret_msg
;
}
public
void
setRet_msg
(
String
ret_msg
)
{
this
.
ret_msg
=
ret_msg
;
}
public
class
Token
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
//token编码
private
String
token
;
//凭证有效时间 单位:秒
private
String
expires_in
;
public
String
getToken
()
{
return
token
;
}
public
void
setToken
(
String
token
)
{
this
.
token
=
token
;
}
public
String
getExpires_in
()
{
return
expires_in
;
}
public
void
setExpires_in
(
String
expires_in
)
{
this
.
expires_in
=
expires_in
;
}
}
@Override
public
String
toString
()
{
return
"OnlineTokenModel{"
+
"item="
+
item
+
", ret_code='"
+
ret_code
+
'\''
+
", ret_msg='"
+
ret_msg
+
'\''
+
'}'
;
}
}
\ No newline at end of file
sobot_common/src/main/java/com/sobot/common/login/permission/SobotPermissionManager.java
View file @
626141c5
...
...
@@ -3,10 +3,12 @@ package com.sobot.common.login.permission;
import
android.text.TextUtils
;
import
com.sobot.common.login.SobotLoginTools
;
import
com.sobot.common.login.
model.LoginUserEntity
;
import
com.sobot.common.login.
db.FunctionManager
;
import
com.sobot.common.login.model.ServiceFunctionVoModel
;
import
com.sobot.common.login.model.SobotServiceInfoModel
;
import
java.util.List
;
/**
* 权限管理类
*/
...
...
@@ -26,8 +28,8 @@ public class SobotPermissionManager {
private
static
SobotPermissionApi
getInstance
()
{
if
(
instance
==
null
)
{
if
(
SobotLoginTools
.
getInstance
().
get
LoginUser
()
!=
null
)
{
switch
(
SobotLoginTools
.
getInstance
().
get
LoginUser
().
getCusRoleId
())
{
if
(
SobotLoginTools
.
getInstance
().
get
ServiceInfo
()
!=
null
)
{
switch
(
SobotLoginTools
.
getInstance
().
get
ServiceInfo
().
getCusRoleId
())
{
case
ONLINE_CUSTOMER_SERVICE:
//在线客服
instance
=
new
PermissionOnLineCustomerService
();
break
;
...
...
@@ -95,7 +97,22 @@ public class SobotPermissionManager {
public
static
final
String
USER_PERMISSION_TYPE_WORK_HISTORY
=
"1230"
;
// 工单操作历史权限
public
static
final
String
USER_PERMISSION_TYPE_WORK_STATUS
=
"1231"
;
// 工单状态 可见/不可见
/**
* 查看App客户中心
*/
public
static
String
ADMIN_APP_TICKET_CUSTOMER_FUNCTION_CODE
=
"1611"
;
/**
* 拉黑权限编码
*/
public
static
String
BLACK_FUNCTION_CODE
=
"220201"
;
/**
* 转接权限编码
*/
public
static
String
TRANSFER_FUNCTION_CODE
=
"220202"
;
/**
* 客服自定义欢迎语权限编码
*/
public
static
String
DIY_ADMIN_CONFIG_FUNCTION_CODE
=
"220204"
;
//会话
public
static
final
String
MODULE_CHAT
=
"module_chat"
;
...
...
@@ -233,21 +250,21 @@ public class SobotPermissionManager {
public
static
final
String
SCC_DXRW_RWZJBJ
=
"scc-dxrw-rwzjbj"
;
//电销 电话条
public
static
final
String
SCC_DHT
=
"scc-dht"
;
public
static
final
String
SCC_DHT
=
"scc-dht"
;
//修改绑定电话号码
public
static
final
String
SCC_DHT_XGBDDHHM
=
"scc-dht-xgbddhhm"
;
public
static
final
String
SCC_DHT_XGBDDHHM
=
"scc-dht-xgbddhhm"
;
//修改分机账号
public
static
final
String
SCC_DHT_XGFJZH
=
"scc-dht-xgfjzh"
;
public
static
final
String
SCC_DHT_XGFJZH
=
"scc-dht-xgfjzh"
;
//离线后自动解绑
public
static
final
String
SCC_DHT_LXHZDJB
=
"scc-dht-lxhzdjb"
;
public
static
final
String
SCC_DHT_LXHZDJB
=
"scc-dht-lxhzdjb"
;
//保持和保持取消
public
static
final
String
SCC_DHT_BCHBCQX
=
"scc-dht-bchbcqx"
;
public
static
final
String
SCC_DHT_BCHBCQX
=
"scc-dht-bchbcqx"
;
//静音和静音取消
public
static
final
String
SCC_DHT_JYHJYQX
=
"scc-dht-jyhjyqx"
;
public
static
final
String
SCC_DHT_JYHJYQX
=
"scc-dht-jyhjyqx"
;
//延长整理时长
public
static
final
String
SCC_DHT_YCZLSC
=
"scc-dht-yczlsc"
;
public
static
final
String
SCC_DHT_YCZLSC
=
"scc-dht-yczlsc"
;
//结束整理并置忙
public
static
final
String
SCC_DHT_JSZLBZM
=
"scc-dht-jszlbzm"
;
public
static
final
String
SCC_DHT_JSZLBZM
=
"scc-dht-jszlbzm"
;
public
static
String
getCodeByType
(
String
type
)
{
if
(!
TextUtils
.
isEmpty
(
type
))
{
...
...
@@ -331,9 +348,15 @@ public class SobotPermissionManager {
}
}
}
else
{
LoginUserEntity
customerServiceInfoModel
=
SobotLoginTools
.
getInstance
().
getLoginUser
();
if
(!
TextUtils
.
isEmpty
(
type
)
&&
customerServiceInfoModel
!=
null
&&
customerServiceInfoModel
.
getTicketFunction
()
!=
null
&&
customerServiceInfoModel
.
getTicketFunction
().
containsKey
(
type
))
{
return
customerServiceInfoModel
.
getTicketFunction
().
get
(
type
);
List
<
ServiceFunctionVoModel
>
functionVoModelList
=
FunctionManager
.
getInstance
().
getFunctionVos
();
if
(!
TextUtils
.
isEmpty
(
type
)
&&
functionVoModelList
!=
null
)
{
for
(
int
i
=
0
;
i
<
functionVoModelList
.
size
();
i
++)
{
ServiceFunctionVoModel
cusFunctionVoModel
=
functionVoModelList
.
get
(
i
);
if
(
getCodeByType
(
type
).
equals
(
cusFunctionVoModel
.
getId
()))
{
//1开启了 0 没有开启
return
cusFunctionVoModel
.
getCheckedCode
()
==
1
?
true
:
false
;
}
}
}
}
}
...
...
sobot_widget/sobot-widget-publish-mavencentral.gradle
View file @
626141c5
...
...
@@ -12,7 +12,7 @@ task androidSourcesJar(type: Jar) {
ext
{
PUBLISH_GROUP_ID
=
"com.sobot.library"
//项目包名
PUBLISH_ARTIFACT_ID
=
'widget_x'
//项目名
PUBLISH_VERSION
=
'1.2.
3
'
//版本号
PUBLISH_VERSION
=
'1.2.
4
'
//版本号
}
...
...
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