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
4e3c2858
Commit
4e3c2858
authored
Feb 14, 2022
by
刘基明
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '0214_visitlog_fix' into 'dev'
0214 visitlog fix See merge request
!40
parents
5a42bcfe
8e904e87
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
13 additions
and
19 deletions
+13
-19
VisitLogMapper.java
.../tanpu/community/dao/mapper/community/VisitLogMapper.java
+3
-3
VisitLogService.java
...ain/java/com/tanpu/community/service/VisitLogService.java
+10
-16
No files found.
community-service/src/main/java/com/tanpu/community/dao/mapper/community/VisitLogMapper.java
View file @
4e3c2858
...
@@ -21,11 +21,11 @@ import java.util.List;
...
@@ -21,11 +21,11 @@ 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}"
)
@Update
(
"update visit_log set duration=duration+#{duration} where ident=#{ident}
and ref_id=#{refId} and ref_type=#{refType}
"
)
void
updateDurByIdent
(
@Param
(
"duration"
)
Integer
dur
,
@Param
(
"ident"
)
String
ident
);
void
updateDurByIdent
(
@Param
(
"duration"
)
Integer
dur
,
@Param
(
"ident"
)
String
ident
,
@Param
(
"refId"
)
String
refId
,
@Param
(
"refType"
)
String
refType
);
@Select
(
"select ref_id as id, count(1) as times from visit_log ${ew.customSqlSegment}"
)
@Select
(
"select ref_id as id, count(1) as times from visit_log ${ew.customSqlSegment}"
)
List
<
TimesCountEntity
>
selectCountByThemeIds
(
@Param
(
Constants
.
WRAPPER
)
LambdaQueryWrapper
wrapper
);
List
<
TimesCountEntity
>
selectCountByThemeIds
(
@Param
(
Constants
.
WRAPPER
)
LambdaQueryWrapper
wrapper
);
...
...
community-service/src/main/java/com/tanpu/community/service/VisitLogService.java
View file @
4e3c2858
...
@@ -65,18 +65,23 @@ public class VisitLogService {
...
@@ -65,18 +65,23 @@ 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
());
visitLogMapper
.
updateDurByIdent
(
vs
.
getDuration
(),
vs
.
getIdent
()
,
vs
.
getRefId
(),
vs
.
getRefType
()
);
}
}
// 如果执行超时,会删除别的实例的key
redisCache
.
evict
(
key
+
":"
+
rand
);
redisCache
.
evict
(
key
);
return
;
return
;
}
}
try
{
Thread
.
sleep
(
200
);
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
}
}
}
}
...
@@ -119,17 +124,6 @@ public class VisitLogService {
...
@@ -119,17 +124,6 @@ public class VisitLogService {
.
eq
(
VisitLogEntity:
:
getRefType
,
PageEnum
.
COMM_VISIT_THEME
.
getId
()));
.
eq
(
VisitLogEntity:
:
getRefType
,
PageEnum
.
COMM_VISIT_THEME
.
getId
()));
}
}
// public LocalDateTime queryLatestViewFollow(String userId) {
// List<VisitLogEntity> visitSummaryEntities = visitLogMapper.selectList(new LambdaQueryWrapper<VisitLogEntity>()
// .eq(VisitLogEntity::getVisitorId, userId)
// .eq(VisitLogEntity::getRefType, VisitTypeEnum.FOLLOW_THEME_VIEW.getCode())
// .orderByDesc(VisitLogEntity::getCreateTime));
// if (CollectionUtils.isEmpty(visitSummaryEntities)) {
// return null;
// } else {
// return visitSummaryEntities.get(0).getCreateTime();
// }
// }
//统计行为集合的浏览量
//统计行为集合的浏览量
public
Map
<
String
,
Integer
>
getCountMapByTargetIds
(
List
<
String
>
refIds
,
String
refType
)
{
public
Map
<
String
,
Integer
>
getCountMapByTargetIds
(
List
<
String
>
refIds
,
String
refType
)
{
...
...
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