Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in
Toggle navigation
T
tanpu-community
Project
Project
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
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
探普后端
tanpu-community
Commits
8e904e87
Commit
8e904e87
authored
Feb 14, 2022
by
刘基明
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
visit log fix
parent
0c208b8e
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
5 additions
and
5 deletions
+5
-5
VisitLogMapper.java
.../tanpu/community/dao/mapper/community/VisitLogMapper.java
+1
-1
VisitLogService.java
...ain/java/com/tanpu/community/service/VisitLogService.java
+4
-4
No files found.
community-service/src/main/java/com/tanpu/community/dao/mapper/community/VisitLogMapper.java
View file @
8e904e87
...
@@ -21,7 +21,7 @@ import java.util.List;
...
@@ -21,7 +21,7 @@ import java.util.List;
* @since 2021-07-28
* @since 2021-07-28
*/
*/
public
interface
VisitLogMapper
extends
BaseMapper
<
VisitLogEntity
>
{
public
interface
VisitLogMapper
extends
BaseMapper
<
VisitLogEntity
>
{
@Select
(
"select * from visit_log where ident=#{ident} and ref_id=#{refId} and ref_type=#{refType}"
)
@Select
(
"select * from visit_log where ident=#{ident} and ref_id=#{refId} and ref_type=#{refType}
for update
"
)
VisitLogEntity
selectByIdentAndRefId
(
@Param
(
"ident"
)
String
ident
,
@Param
(
"refId"
)
String
refId
,
@Param
(
"refType"
)
String
refType
);
VisitLogEntity
selectByIdentAndRefId
(
@Param
(
"ident"
)
String
ident
,
@Param
(
"refId"
)
String
refId
,
@Param
(
"refType"
)
String
refType
);
@Update
(
"update visit_log set duration=duration+#{duration} where ident=#{ident} and ref_id=#{refId} and ref_type=#{refType}"
)
@Update
(
"update visit_log set duration=duration+#{duration} where ident=#{ident} and ref_id=#{refId} and ref_type=#{refType}"
)
...
...
community-service/src/main/java/com/tanpu/community/service/VisitLogService.java
View file @
8e904e87
...
@@ -65,16 +65,16 @@ public class VisitLogService {
...
@@ -65,16 +65,16 @@ public class VisitLogService {
@Transactional
@Transactional
public
void
insertOrUpdateDur
(
VisitLogEntity
vs
)
{
public
void
insertOrUpdateDur
(
VisitLogEntity
vs
)
{
// 分布式锁
// 分布式锁
for
(
;;
)
{
for
(
int
i
=
0
;
i
<
5
*
10
;
i
++
)
{
String
key
=
getVisitLogRedisKey
(
vs
);
String
key
=
getVisitLogRedisKey
(
vs
);
if
(
redisCache
.
setIfAbsent
(
key
,
"1"
,
15
))
{
String
rand
=
String
.
valueOf
((
int
)
Math
.
floor
(
Math
.
random
()
*
100
));
if
(
redisCache
.
setIfAbsent
(
key
,
rand
,
15
))
{
if
(
visitLogMapper
.
selectByIdentAndRefId
(
vs
.
getIdent
(),
vs
.
getRefId
(),
vs
.
getRefType
())
==
null
)
{
if
(
visitLogMapper
.
selectByIdentAndRefId
(
vs
.
getIdent
(),
vs
.
getRefId
(),
vs
.
getRefType
())
==
null
)
{
visitLogMapper
.
insert
(
vs
);
visitLogMapper
.
insert
(
vs
);
}
else
{
}
else
{
visitLogMapper
.
updateDurByIdent
(
vs
.
getDuration
(),
vs
.
getIdent
(),
vs
.
getRefId
(),
vs
.
getRefType
());
visitLogMapper
.
updateDurByIdent
(
vs
.
getDuration
(),
vs
.
getIdent
(),
vs
.
getRefId
(),
vs
.
getRefType
());
}
}
// 如果执行超时,会删除别的实例的key
redisCache
.
evict
(
key
+
":"
+
rand
);
redisCache
.
evict
(
key
);
return
;
return
;
}
}
try
{
try
{
...
...
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