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
a5b0db55
Commit
a5b0db55
authored
Feb 14, 2022
by
刘基明
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '0214_visitlog_fix' into 'master'
0214 visitlog fix See merge request
!42
parents
0f2d329a
7407ddb2
Show 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 @
a5b0db55
...
@@ -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}
limit 1 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 @
a5b0db55
...
@@ -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