Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
P
pica-cloud-account
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
1
合并请求
1
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
Close sidebar
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
com.pica.cloud.account
pica-cloud-account
提交
fd871a89
提交
fd871a89
编写于
3月 09, 2020
作者:
fengyuan.wan
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/dev-login0218' into dev-login0218
上级
2bf1f22f
a39eb852
流水线
#22546
已失败 于阶段
in 0 second
变更
6
流水线
1
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
74 行增加
和
30 行删除
+74
-30
pom.xml
client/pom.xml
+1
-1
AccountInfoClient.java
.../pica/cloud/account/account/client/AccountInfoClient.java
+7
-2
TokenController.java
...ud/account/account/server/controller/TokenController.java
+7
-2
TokenService.java
...ca/cloud/account/account/server/service/TokenService.java
+1
-1
TokenServiceImpl.java
...account/account/server/service/impl/TokenServiceImpl.java
+22
-9
TokenUtils.java
...om/pica/cloud/account/account/server/util/TokenUtils.java
+36
-15
未找到文件。
client/pom.xml
浏览文件 @
fd871a89
...
...
@@ -11,7 +11,7 @@
<groupId>
com.pica.cloud.account
</groupId>
<artifactId>
pica-cloud-account-client
</artifactId>
<version>
1.0.
2
</version>
<version>
1.0.
3.1
</version>
<name>
pica-cloud-account-client
</name>
<packaging>
jar
</packaging>
...
...
client/src/main/java/com/pica/cloud/account/account/client/AccountInfoClient.java
浏览文件 @
fd871a89
...
...
@@ -3,8 +3,8 @@ package com.pica.cloud.account.account.client;
import
com.pica.cloud.account.account.common.req.AccountInfoReq
;
import
com.pica.cloud.foundation.entity.PicaResponse
;
import
org.springframework.cloud.netflix.feign.FeignClient
;
import
org.springframework.web.bind.annotation.
PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.
*
;
import
java.util.List
;
/**
...
...
@@ -20,4 +20,9 @@ public interface AccountInfoClient {
@PostMapping
(
"/account/info/doctorIds"
)
PicaResponse
<
List
<
Integer
>>
getDoctorIds
(
@RequestBody
AccountInfoReq
req
);
@GetMapping
(
value
=
"/account/token/continue"
)
PicaResponse
<
String
>
tokenContinueTime
(
@RequestHeader
(
value
=
"token"
)
String
token
,
@RequestHeader
(
value
=
"sourceType"
)
Integer
sourceType
,
@RequestParam
(
value
=
"seconds"
,
required
=
false
)
Integer
seconds
);
}
server/src/main/java/com/pica/cloud/account/account/server/controller/TokenController.java
浏览文件 @
fd871a89
...
...
@@ -6,6 +6,7 @@ import io.swagger.annotations.Api;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestHeader
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
...
...
@@ -33,8 +34,12 @@ public class TokenController extends AccountBaseController {
@ApiOperation
(
value
=
"token续时"
)
@GetMapping
(
value
=
"/token/continue"
)
public
PicaResponse
<
String
>
tokenContinueTime
(
@RequestParam
(
value
=
"seconds"
,
required
=
false
)
Integer
seconds
)
throws
Exception
{
return
PicaResponse
.
toResponse
(
tokenService
.
tokenContinueTime
(
super
.
getToken
(),
super
.
getSourceType
(),
seconds
));
public
PicaResponse
tokenContinueTime
(
@RequestHeader
(
value
=
"token"
)
String
token
,
@RequestHeader
(
value
=
"sourceType"
)
Integer
sourceType
,
@RequestParam
(
value
=
"seconds"
,
required
=
false
)
Integer
seconds
)
throws
Exception
{
tokenService
.
tokenContinueTime
(
token
,
sourceType
,
seconds
);
return
PicaResponse
.
toResponse
();
}
...
...
server/src/main/java/com/pica/cloud/account/account/server/service/TokenService.java
浏览文件 @
fd871a89
...
...
@@ -11,6 +11,6 @@ public interface TokenService {
String
getToken
(
Map
<
String
,
Object
>
map
);
String
tokenContinueTime
(
String
token
,
Integer
sourceType
,
Integer
seconds
);
void
tokenContinueTime
(
String
token
,
Integer
sourceType
,
Integer
seconds
);
}
server/src/main/java/com/pica/cloud/account/account/server/service/impl/TokenServiceImpl.java
浏览文件 @
fd871a89
...
...
@@ -6,7 +6,11 @@ import com.pica.cloud.account.account.server.util.TokenUtils;
import
com.pica.cloud.foundation.redis.ICacheClient
;
import
com.pica.cloud.foundation.utils.entity.PicaUser
;
import
com.pica.cloud.foundation.utils.utils.CommonUtil
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.StringUtils
;
...
...
@@ -24,11 +28,18 @@ import static com.pica.cloud.foundation.utils.utils.json.Object2Map.objectToMapS
*/
@Service
public
class
TokenServiceImpl
implements
TokenService
{
private
Logger
logger
=
LoggerFactory
.
getLogger
(
this
.
getClass
());
@Autowired
private
ICacheClient
redisClient
;
@Autowired
private
TokenUtils
tokenUtils
;
@Autowired
@Qualifier
(
"accountThreadPool"
)
private
ThreadPoolTaskExecutor
threadPoolTaskExecutor
;
@Override
public
String
getToken
(
Map
<
String
,
Object
>
headersMap
)
{
String
mobile
=
new
StringBuilder
(
"9"
).
append
(
CommonUtil
.
getRandom
(
10
)).
toString
();
...
...
@@ -56,8 +67,6 @@ public class TokenServiceImpl implements TokenService {
}
return
null
;
}
@Autowired
private
TokenUtils
tokenUtils
;
/**
* @Description token续时
...
...
@@ -68,13 +77,17 @@ public class TokenServiceImpl implements TokenService {
* @Return java.lang.String
*/
@Override
public
String
tokenContinueTime
(
String
token
,
Integer
sourceType
,
Integer
seconds
)
{
public
void
tokenContinueTime
(
String
token
,
Integer
sourceType
,
Integer
seconds
)
{
if
(
StringUtils
.
isEmpty
(
token
)
||
null
==
sourceType
)
{
return
null
;
}
if
(
tokenUtils
.
tokenContinueTime
(
token
,
sourceType
,
seconds
))
{
return
token
;
return
;
}
return
null
;
threadPoolTaskExecutor
.
execute
(()
->
{
if
(
tokenUtils
.
tokenContinueTime
(
token
,
sourceType
,
seconds
))
{
logger
.
info
(
"tokenContinueTime finish"
);
}
});
return
;
}
}
server/src/main/java/com/pica/cloud/account/account/server/util/TokenUtils.java
浏览文件 @
fd871a89
...
...
@@ -10,6 +10,7 @@ import org.slf4j.Logger;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.CollectionUtils
;
import
java.text.SimpleDateFormat
;
import
java.util.HashMap
;
...
...
@@ -22,7 +23,6 @@ import java.util.UUID;
*/
@Component
public
class
TokenUtils
{
private
Logger
logger
=
LoggerFactory
.
getLogger
(
this
.
getClass
());
@Autowired
...
...
@@ -53,21 +53,42 @@ public class TokenUtils {
public
boolean
tokenContinueTime
(
String
token
,
Integer
sourceType
,
Integer
seconds
)
{
logger
.
info
(
"tokenContinueTime-token-{}, sourceType-{}, seconds-{}"
,
token
,
sourceType
,
seconds
);
// 根据不同的产品线设置token有效期(web/admin token有效期30天,ios/android/h5 token有效期24小时)
int
expiredSeconds
=
24
*
60
*
60
;
if
(!
SourceTypeEnum
.
SAAS
.
getCode
().
equals
(
sourceType
)
&&
!
SourceTypeEnum
.
ADMIN
.
getCode
().
equals
(
sourceType
))
{
expiredSeconds
=
expiredSeconds
*
30
;
}
String
sourceTypeRedis
=
AccountUtils
.
getSourceType
(
sourceType
);
String
key
=
"token-"
+
token
;
// value = "token-doctor-{doctorId}";
String
value
=
cacheClient
.
get
(
key
);
cacheClient
.
set
(
key
,
value
,
expiredSeconds
);
cacheClient
.
set
(
value
+
"-"
+
sourceTypeRedis
,
key
,
expiredSeconds
);
// 非游客token才去执行token续时代码
Map
<
String
,
String
>
map
=
cacheClient
.
getToken
(
token
);
if
(!
CollectionUtils
.
isEmpty
(
map
))
{
String
id
=
map
.
get
(
"id"
);
logger
.
info
(
"tokenContinueTime-start-userId-{}"
,
id
);
if
(
StringUtils
.
isNotEmpty
(
id
)
&&
Integer
.
parseInt
(
id
)
>
0
)
{
// 根据不同的产品线设置token有效期(web/admin token有效期30天,ios/android/h5 token有效期24小时)
int
expiredSeconds
=
24
*
60
*
60
;
if
(!
SourceTypeEnum
.
SAAS
.
getCode
().
equals
(
sourceType
)
&&
!
SourceTypeEnum
.
ADMIN
.
getCode
().
equals
(
sourceType
))
{
expiredSeconds
=
expiredSeconds
*
30
;
}
return
true
;
String
sourceTypeRedis
=
AccountUtils
.
getSourceType
(
sourceType
);
String
key
=
"token-"
+
token
;
// value = "token-doctor-{doctorId}";
if
(!
cacheClient
.
exists
(
key
))
{
logger
.
info
(
"tokenContinueTime-key not exists"
);
return
false
;
}
String
value
=
cacheClient
.
get
(
key
);
if
(!
cacheClient
.
exists
(
value
+
"-"
+
sourceTypeRedis
))
{
logger
.
info
(
"tokenContinueTime-value not exists"
);
return
false
;
}
try
{
cacheClient
.
set
(
key
,
value
,
expiredSeconds
);
cacheClient
.
set
(
value
+
"-"
+
sourceTypeRedis
,
key
,
expiredSeconds
);
return
true
;
}
catch
(
Exception
e
)
{
logger
.
error
(
"tokenContinueTime-Exception-{}"
+
e
.
getMessage
(),
e
);
return
false
;
}
}
}
return
false
;
}
/**
...
...
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录