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
63ba2d25
Commit
63ba2d25
authored
Dec 27, 2021
by
刘基明
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
topic锁
parent
f0106844
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
24 additions
and
4 deletions
+24
-4
VisitLogService.java
...ain/java/com/tanpu/community/service/VisitLogService.java
+22
-4
application-test.yml
community-service/src/main/resources/application-test.yml
+2
-0
No files found.
community-service/src/main/java/com/tanpu/community/service/VisitLogService.java
View file @
63ba2d25
...
@@ -3,12 +3,14 @@ package com.tanpu.community.service;
...
@@ -3,12 +3,14 @@ package com.tanpu.community.service;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.tanpu.biz.common.enums.clue.PageEnum
;
import
com.tanpu.biz.common.enums.clue.PageEnum
;
import
com.tanpu.community.api.enums.DeleteTagEnum
;
import
com.tanpu.community.api.enums.DeleteTagEnum
;
import
com.tanpu.community.cache.RedisCache
;
import
com.tanpu.community.dao.entity.community.TimesCountEntity
;
import
com.tanpu.community.dao.entity.community.TimesCountEntity
;
import
com.tanpu.community.dao.entity.community.VisitLogEntity
;
import
com.tanpu.community.dao.entity.community.VisitLogEntity
;
import
com.tanpu.community.dao.mapper.community.VisitLogMapper
;
import
com.tanpu.community.dao.mapper.community.VisitLogMapper
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.ListUtils
;
import
org.apache.commons.collections4.ListUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.time.DateUtils
;
import
org.apache.commons.lang3.time.DateUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
...
@@ -29,6 +31,9 @@ public class VisitLogService {
...
@@ -29,6 +31,9 @@ public class VisitLogService {
@Resource
@Resource
private
VisitLogMapper
visitLogMapper
;
private
VisitLogMapper
visitLogMapper
;
@Resource
private
RedisCache
redisCache
;
// 获取用户7天内访问过的
// 获取用户7天内访问过的
public
List
<
String
>
queryUserRecentVisited
(
String
userId
)
{
public
List
<
String
>
queryUserRecentVisited
(
String
userId
)
{
Date
endDate
=
new
Date
();
Date
endDate
=
new
Date
();
...
@@ -59,11 +64,24 @@ public class VisitLogService {
...
@@ -59,11 +64,24 @@ public class VisitLogService {
@Transactional
@Transactional
public
void
insertOrUpdateDur
(
VisitLogEntity
vs
)
{
public
void
insertOrUpdateDur
(
VisitLogEntity
vs
)
{
// 分布式锁
for
(;;)
{
String
key
=
getVisitLogRedisKey
(
vs
);
if
(
redisCache
.
setIfAbsent
(
key
,
"1"
,
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
());
visitLogMapper
.
updateDurByIdent
(
vs
.
getDuration
(),
vs
.
getIdent
());
}
}
// 如果执行超时,会删除别的实例的key
redisCache
.
evict
(
key
);
return
;
}
}
}
private
String
getVisitLogRedisKey
(
VisitLogEntity
vs
)
{
return
StringUtils
.
join
(
"insertOrUpdateDur:"
,
vs
.
getIdent
().
substring
(
0
,
4
),
vs
.
getRefId
(),
vs
.
getRefType
());
}
}
@Transactional
@Transactional
...
...
community-service/src/main/resources/application-test.yml
View file @
63ba2d25
...
@@ -60,6 +60,8 @@ spring:
...
@@ -60,6 +60,8 @@ spring:
enabled
:
false
enabled
:
false
zipkin
:
zipkin
:
enabled
:
false
enabled
:
false
redis
:
database
:
7
aliyun
:
aliyun
:
oss
:
oss
:
...
...
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