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
提交
35ddd4f6
提交
35ddd4f6
编写于
8月 02, 2019
作者:
dong.an
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
刷新用户缓存工具
上级
0ff0fbb1
流水线
#12859
已失败 于阶段
in 0 second
变更
5
流水线
1
显示空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
116 行增加
和
3 行删除
+116
-3
AccountStatusController.java
...nt/account/server/controller/AccountStatusController.java
+17
-3
AccountMapper.java
...ca/cloud/account/account/server/mapper/AccountMapper.java
+5
-0
AccountService.java
.../cloud/account/account/server/service/AccountService.java
+5
-0
AccountServiceImpl.java
...count/account/server/service/impl/AccountServiceImpl.java
+79
-0
AccountMapper.xml
server/src/main/resources/mybatis/AccountMapper.xml
+10
-0
未找到文件。
server/src/main/java/com/pica/cloud/account/account/server/controller/AccountStatusController.java
浏览文件 @
35ddd4f6
...
@@ -6,9 +6,9 @@ import com.pica.cloud.foundation.entity.PicaResponse;
...
@@ -6,9 +6,9 @@ import com.pica.cloud.foundation.entity.PicaResponse;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.
GetMapping
;
import
org.springframework.web.bind.annotation.
*
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.Map
;
/**
/**
* @author andong
* @author andong
...
@@ -29,4 +29,18 @@ public class AccountStatusController extends AccountBaseController {
...
@@ -29,4 +29,18 @@ public class AccountStatusController extends AccountBaseController {
Account
account
=
accountService
.
getById
(
doctorId
);
Account
account
=
accountService
.
getById
(
doctorId
);
return
PicaResponse
.
toResponse
(
account
);
return
PicaResponse
.
toResponse
(
account
);
}
}
@ApiOperation
(
"获取用户缓存"
)
@GetMapping
(
"/cache"
)
public
PicaResponse
<
Map
<
String
,
String
>>
getCache
(
@RequestParam
(
"id"
)
long
id
)
{
return
PicaResponse
.
toResponse
(
accountService
.
getCache
(
id
));
}
@ApiOperation
(
"刷新用户缓存"
)
@GetMapping
(
"/cache/refresh"
)
public
PicaResponse
refreshCache
(
@RequestParam
(
"id"
)
long
id
)
{
new
Thread
(()
->
accountService
.
refreshCache
(
id
)).
start
();
return
PicaResponse
.
toResponse
();
}
}
}
server/src/main/java/com/pica/cloud/account/account/server/mapper/AccountMapper.java
浏览文件 @
35ddd4f6
...
@@ -4,6 +4,9 @@ import com.pica.cloud.account.account.server.entity.Account;
...
@@ -4,6 +4,9 @@ import com.pica.cloud.account.account.server.entity.Account;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
import
java.util.Map
;
/**
/**
* 账号Mapper
* 账号Mapper
* @author andong
* @author andong
...
@@ -26,4 +29,6 @@ public interface AccountMapper {
...
@@ -26,4 +29,6 @@ public interface AccountMapper {
//根据微信unionid获取账号
//根据微信unionid获取账号
Account
getByUnionid
(
@Param
(
"unionid"
)
String
unionid
);
Account
getByUnionid
(
@Param
(
"unionid"
)
String
unionid
);
List
<
Map
<
String
,
Object
>>
getHospitalInfoByPage
(
@Param
(
"id"
)
Long
id
,
@Param
(
"offset"
)
int
offset
,
@Param
(
"size"
)
int
size
);
}
}
server/src/main/java/com/pica/cloud/account/account/server/service/AccountService.java
浏览文件 @
35ddd4f6
package
com
.
pica
.
cloud
.
account
.
account
.
server
.
service
;
package
com
.
pica
.
cloud
.
account
.
account
.
server
.
service
;
import
com.pica.cloud.account.account.server.entity.Account
;
import
com.pica.cloud.account.account.server.entity.Account
;
import
java.util.Map
;
/**
/**
* @author andong
* @author andong
...
@@ -23,4 +24,8 @@ public interface AccountService {
...
@@ -23,4 +24,8 @@ public interface AccountService {
//更新账号信息
//更新账号信息
void
updateAccountById
(
Account
account
);
void
updateAccountById
(
Account
account
);
Map
<
String
,
String
>
getCache
(
long
id
);
void
refreshCache
(
long
id
);
}
}
server/src/main/java/com/pica/cloud/account/account/server/service/impl/AccountServiceImpl.java
浏览文件 @
35ddd4f6
...
@@ -3,11 +3,20 @@ package com.pica.cloud.account.account.server.service.impl;
...
@@ -3,11 +3,20 @@ package com.pica.cloud.account.account.server.service.impl;
import
com.pica.cloud.account.account.server.entity.Account
;
import
com.pica.cloud.account.account.server.entity.Account
;
import
com.pica.cloud.account.account.server.mapper.AccountMapper
;
import
com.pica.cloud.account.account.server.mapper.AccountMapper
;
import
com.pica.cloud.account.account.server.service.AccountService
;
import
com.pica.cloud.account.account.server.service.AccountService
;
import
com.pica.cloud.foundation.redis.ICacheClient
;
import
com.pica.cloud.foundation.utils.utils.EncryptCreateUtil
;
import
com.pica.cloud.foundation.utils.utils.EncryptCreateUtil
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
/**
* @author andong
* @author andong
...
@@ -16,8 +25,14 @@ import java.util.Date;
...
@@ -16,8 +25,14 @@ import java.util.Date;
@Service
@Service
public
class
AccountServiceImpl
implements
AccountService
{
public
class
AccountServiceImpl
implements
AccountService
{
private
static
final
String
KEY_PREFIX
=
"token-doctor-"
;
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
AccountServiceImpl
.
class
);
@Autowired
@Autowired
private
AccountMapper
accountMapper
;
private
AccountMapper
accountMapper
;
@Autowired
@Qualifier
(
"cacheMigrateClient"
)
private
ICacheClient
cacheClient
;
//根据ID获取账号
//根据ID获取账号
@Override
@Override
...
@@ -59,4 +74,68 @@ public class AccountServiceImpl implements AccountService {
...
@@ -59,4 +74,68 @@ public class AccountServiceImpl implements AccountService {
public
void
updateAccountById
(
Account
account
)
{
public
void
updateAccountById
(
Account
account
)
{
accountMapper
.
updateByIdSelective
(
account
);
accountMapper
.
updateByIdSelective
(
account
);
}
}
@Override
public
Map
<
String
,
String
>
getCache
(
long
id
)
{
String
key
=
KEY_PREFIX
+
id
;
Map
<
String
,
String
>
map
=
new
HashMap
();
map
.
put
(
"id"
,
cacheClient
.
hget
(
key
,
"id"
));
map
.
put
(
"hospital_id"
,
cacheClient
.
hget
(
key
,
"hospital_id"
));
map
.
put
(
"hospital"
,
cacheClient
.
hget
(
key
,
"hospital"
));
return
map
;
}
@Override
public
void
refreshCache
(
long
id
)
{
int
offset
=
0
;
final
int
size
=
2000
;
if
(
id
>=
0
)
{
//刷新单个医生缓存信息
List
<
Map
<
String
,
Object
>>
list
=
accountMapper
.
getHospitalInfoByPage
(
id
,
offset
,
size
);
if
(
CollectionUtils
.
isNotEmpty
(
list
))
{
Map
<
String
,
Object
>
doctorMap
=
list
.
get
(
0
);
this
.
refresh
(
doctorMap
);
}
}
else
{
//刷新全部医生缓存信息
int
errorCount
=
0
;
//异常次数
List
<
Map
<
String
,
Object
>>
list
=
accountMapper
.
getHospitalInfoByPage
(
null
,
offset
,
size
);
while
(
CollectionUtils
.
isNotEmpty
(
list
))
{
for
(
Map
<
String
,
Object
>
doctorMap
:
list
)
{
int
result
=
this
.
refresh
(
doctorMap
);
errorCount
+=
result
;
}
if
(
errorCount
>=
10000
)
{
break
;
//错误次数超过一定数量停止任务
}
logger
.
info
(
"更新用户缓存信息已完成数量:{}"
,
offset
+
list
.
size
());
offset
+=
size
;
list
=
accountMapper
.
getHospitalInfoByPage
(
null
,
offset
,
size
);
}
logger
.
info
(
"更新用户缓存信息全部完成!"
);
}
}
//更新缓存中hospital_id,hospital信息
//成功返回0,失败返回1
private
int
refresh
(
Map
<
String
,
Object
>
doctorMap
)
{
String
doctorId
=
doctorMap
.
get
(
"id"
).
toString
();
String
hospitalId
=
doctorMap
.
get
(
"hospital_id"
)
==
null
?
StringUtils
.
EMPTY
:
doctorMap
.
get
(
"hospital_id"
).
toString
();
String
hospital
=
doctorMap
.
get
(
"hospital"
)
==
null
?
StringUtils
.
EMPTY
:
doctorMap
.
get
(
"hospital"
).
toString
();
String
key
=
KEY_PREFIX
+
doctorId
;
try
{
String
cacheId
=
cacheClient
.
hget
(
key
,
"id"
);
if
(
StringUtils
.
isBlank
(
cacheId
))
{
return
0
;
//未找到用户缓存数据,不做更新
}
cacheClient
.
hset
(
key
,
"hospital_id"
,
StringUtils
.
isEmpty
(
hospitalId
)
?
"0"
:
hospitalId
);
cacheClient
.
hset
(
key
,
"hospital"
,
hospital
);
return
0
;
}
catch
(
Exception
ex
)
{
return
1
;
}
}
}
}
server/src/main/resources/mybatis/AccountMapper.xml
浏览文件 @
35ddd4f6
...
@@ -301,4 +301,14 @@
...
@@ -301,4 +301,14 @@
limit 1
limit 1
</select>
</select>
<select
id=
"getHospitalInfoByPage"
resultType=
"map"
>
select id, hospital_id, hospital
from p_doctor
where delete_flag = 1
<if
test=
"id != null"
>
and id = #{id}
</if>
limit #{offset}, #{size}
</select>
</mapper>
</mapper>
\ No newline at end of file
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录