Commit 0e210072 authored by 刘基明's avatar 刘基明

临时埋点

parent 0c2e35e0
...@@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel; ...@@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotEmpty;
@Data @Data
@Builder @Builder
@ApiModel(value = "分页") @ApiModel(value = "分页")
...@@ -15,8 +17,10 @@ public class Pageable { ...@@ -15,8 +17,10 @@ public class Pageable {
public static final Integer DEFAULT_PAGE_NUMBER = 0; public static final Integer DEFAULT_PAGE_NUMBER = 0;
@NotEmpty(message = "分页Number不能为空")
public Integer pageNumber = DEFAULT_PAGE_NUMBER; public Integer pageNumber = DEFAULT_PAGE_NUMBER;
@NotEmpty(message = "分页pageSize不能为空")
public Integer pageSize = DEFAULT_PAGE_SIZE; public Integer pageSize = DEFAULT_PAGE_SIZE;
public Pageable() { public Pageable() {
......
...@@ -22,6 +22,7 @@ public class ThemeListReq { ...@@ -22,6 +22,7 @@ public class ThemeListReq {
@ApiModelProperty(value = "当前浏览的最后一个themeId,可以为空") @ApiModelProperty(value = "当前浏览的最后一个themeId,可以为空")
public String lastId=""; public String lastId="";
@NotNull(message = "分页")
public Pageable page; public Pageable page;
public List<String> excludeIds; public List<String> excludeIds;
......
...@@ -199,9 +199,13 @@ public class ThemeManager { ...@@ -199,9 +199,13 @@ public class ThemeManager {
themes = themeService.queryByThemeIds(recmdIds); themes = themeService.queryByThemeIds(recmdIds);
themes = RankUtils.sortThemeEntityByIds(themes, recmdIds); themes = RankUtils.sortThemeEntityByIds(themes, recmdIds);
} else if (ThemeListTypeEnum.FOLLOW.getCode().equals(req.getType())) { } else if (ThemeListTypeEnum.FOLLOW.getCode().equals(req.getType())) {
//TODO 临时埋点,接入新埋点后删除
if (CollectionUtils.isEmpty(req.getExcludeIds())) {
visitSummaryService.addPageView(userId, userId, VisitTypeEnum.FOLLOW_THEME_VIEW);
}
//根据关注列表查询 //根据关注列表查询
List<String> fansList = followRelService.queryFansByFollowerId(userId); List<String> fansList = followRelService.queryFansByFollowerId(userId);
themes = themeService.queryByUserIds(fansList, req.getLastId(), req.page.getPageSize()); themes = themeService.queryByUserIds(fansList, pageStart, pageSize);
} else if (ThemeListTypeEnum.TOPIC_HOT.getCode().equals(req.getType())) { } else if (ThemeListTypeEnum.TOPIC_HOT.getCode().equals(req.getType())) {
//根据话题查询热门 //根据话题查询热门
if (StringUtils.isEmpty(req.getTopicId())) { if (StringUtils.isEmpty(req.getTopicId())) {
...@@ -312,6 +316,8 @@ public class ThemeManager { ...@@ -312,6 +316,8 @@ public class ThemeManager {
//查询正文 //查询正文
public ThemeQo getThemeDetail(String themeId, String userId) { public ThemeQo getThemeDetail(String themeId, String userId) {
//TODO 临时埋点,接入新埋点后删除
visitSummaryService.addPageView(userId, themeId, VisitTypeEnum.THEME_PAGE_VIEW);
//查询详情 //查询详情
ThemeQo themeQo = redisCache.getObject(StringUtils.joinWith("_", CACHE_THEME_ID, themeId), 60, ThemeQo themeQo = redisCache.getObject(StringUtils.joinWith("_", CACHE_THEME_ID, themeId), 60,
() -> this.getDetailCommon(themeId), ThemeQo.class); () -> this.getDetailCommon(themeId), ThemeQo.class);
......
package com.tanpu.community.manager; package com.tanpu.community.manager;
import com.tanpu.common.auth.UserHolder; import com.tanpu.common.auth.UserHolder;
import com.tanpu.common.exception.BizException;
import com.tanpu.community.api.beans.qo.TopicRankQo; import com.tanpu.community.api.beans.qo.TopicRankQo;
import com.tanpu.community.api.beans.req.page.Page; import com.tanpu.community.api.beans.req.page.Page;
import com.tanpu.community.api.beans.req.topic.TopicSearchReq; import com.tanpu.community.api.beans.req.topic.TopicSearchReq;
import com.tanpu.community.api.enums.VisitTypeEnum; import com.tanpu.community.api.enums.VisitTypeEnum;
import com.tanpu.community.service.*; import com.tanpu.community.service.RankService;
import com.tanpu.community.service.TopicService;
import com.tanpu.community.service.VisitSummaryService;
import com.tanpu.community.util.PageUtils; import com.tanpu.community.util.PageUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -28,14 +29,6 @@ public class TopicManager { ...@@ -28,14 +29,6 @@ public class TopicManager {
@Resource @Resource
private UserHolder userHolder; private UserHolder userHolder;
// 新增话题
public void insertTopic(String topicTitle, String userId) {
if (topicService.queryByTitile(topicTitle) != null) {
throw new BizException("话题名称已存在:" + topicTitle);
}
topicService.addTopic(topicTitle, userId);
}
// 首页-话题标签 // 首页-话题标签
public List<TopicRankQo> getTop4TopicTitles() { public List<TopicRankQo> getTop4TopicTitles() {
...@@ -52,6 +45,8 @@ public class TopicManager { ...@@ -52,6 +45,8 @@ public class TopicManager {
// 话题详情页 // 话题详情页
public TopicRankQo getDetail(String topicId) { public TopicRankQo getDetail(String topicId) {
//TODO 临时埋点,接入新埋点后删除
visitSummaryService.addPageView(userHolder.getUserId(), topicId, VisitTypeEnum.TOPIC_PAGE_VIEW);
return rankService.getTopicDetail(topicId); return rankService.getTopicDetail(topicId);
} }
......
...@@ -227,27 +227,21 @@ public class ThemeService { ...@@ -227,27 +227,21 @@ public class ThemeService {
} }
/** /**
* 根据作者查询主题列表(可分页) * 根据作者查询主题分页列表
*
* @param userIds * @param userIds
* @param lastId * @param pageStart
* @param pageSize * @param pageSize
* @return * @return
*/ */
public List<ThemeEntity> queryByUserIds(List<String> userIds, String lastId, Integer pageSize) { public List<ThemeEntity> queryByUserIds(List<String> userIds, Integer pageStart, Integer pageSize) {
if (CollectionUtils.isEmpty(userIds)){ if (CollectionUtils.isEmpty(userIds)){
return Collections.emptyList(); return Collections.emptyList();
} }
LambdaQueryWrapper<ThemeEntity> queryWrapper = new LambdaQueryWrapper<ThemeEntity>() LambdaQueryWrapper<ThemeEntity> queryWrapper = new LambdaQueryWrapper<ThemeEntity>()
.in(ThemeEntity::getAuthorId, userIds); .in(ThemeEntity::getAuthorId, userIds)
if (StringUtils.isNotEmpty(lastId)) { .last("limit " + pageStart + ", " + pageSize)
ThemeEntity lastEntity = queryByThemeId(lastId); .orderByDesc(ThemeEntity::getCreateTime)
if (lastEntity == null) throw new BizException("主题未找到,id:" + lastId); .eq(ThemeEntity::getDeleteTag, DeleteTagEnum.NOT_DELETED.getCode());
queryWrapper.lt(ThemeEntity::getUpdateTime, lastEntity.getCreateTime());
}
queryWrapper.last("limit " + pageSize);
queryWrapper.orderByDesc(ThemeEntity::getCreateTime);
queryWrapper.eq(ThemeEntity::getDeleteTag, DeleteTagEnum.NOT_DELETED.getCode());
return themeMapper.selectList(queryWrapper); return themeMapper.selectList(queryWrapper);
} }
......
...@@ -55,6 +55,17 @@ public class VisitSummaryService { ...@@ -55,6 +55,17 @@ public class VisitSummaryService {
} }
} }
@Transactional
//TODO 临时埋点,接入新埋点后删除
public void addPageView(String userId, String targetId, VisitTypeEnum type) {
visitSummaryMapper.insert(VisitSummaryEntity.builder()
.visitorId(userId)
.refId(targetId)
.refType(type.getCode())
.duration(0)
.build());
}
// 查询话题 详细页面 浏览量 // 查询话题 详细页面 浏览量
public Integer queryTopicDetailVisit(String topicId) { public Integer queryTopicDetailVisit(String topicId) {
return visitSummaryMapper.selectCount(new LambdaQueryWrapper<VisitSummaryEntity>() return visitSummaryMapper.selectCount(new LambdaQueryWrapper<VisitSummaryEntity>()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment