VisitSummaryService.java 2.76 KB
Newer Older
张辰's avatar
张辰 committed
1 2 3
package com.tanpu.community.service;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
刘基明's avatar
刘基明 committed
4
import com.tanpu.community.api.enums.VisitTypeEnum;
张辰's avatar
张辰 committed
5 6 7
import com.tanpu.community.dao.entity.community.VisitSummaryEntity;
import com.tanpu.community.dao.mapper.community.VisitSummaryMapper;
import lombok.extern.slf4j.Slf4j;
刘基明's avatar
刘基明 committed
8
import org.apache.commons.collections4.CollectionUtils;
张辰's avatar
张辰 committed
9
import org.springframework.stereotype.Service;
刘基明's avatar
刘基明 committed
10
import org.springframework.transaction.annotation.Transactional;
张辰's avatar
张辰 committed
11 12

import javax.annotation.Resource;
刘基明's avatar
刘基明 committed
13
import java.time.LocalDateTime;
刘基明's avatar
刘基明 committed
14
import java.util.List;
张辰's avatar
张辰 committed
15 16 17 18 19 20 21 22

@Slf4j
@Service
public class VisitSummaryService {

    @Resource
    private VisitSummaryMapper visitSummaryMapper;

刘基明's avatar
刘基明 committed
23 24 25 26 27 28
    @Transactional
    public void addPageView(String userId, String targetId, VisitTypeEnum type) {
        visitSummaryMapper.insert(VisitSummaryEntity.builder()
                .visitorId(userId)
                .refId(targetId)
                .refType(type.getCode())
刘基明's avatar
刘基明 committed
29
                .duration(0)
刘基明's avatar
刘基明 committed
30 31
                .build());
    }
张辰's avatar
张辰 committed
32 33 34 35

    // 查询话题 详细页面 浏览量
    public Integer queryTopicDetailVisit(String topicId) {
        return visitSummaryMapper.selectCount(new LambdaQueryWrapper<VisitSummaryEntity>()
刘基明's avatar
刘基明 committed
36
                .eq(VisitSummaryEntity::getRefId, topicId)
刘基明's avatar
刘基明 committed
37
                .eq(VisitSummaryEntity::getRefType, VisitTypeEnum.TOPIC_PAGE_VIEW.getCode()));
刘基明's avatar
刘基明 committed
38 39 40 41 42 43
    }

    // 查询主题 浏览量
    public Integer queryThemeVisit(String theme) {
        return visitSummaryMapper.selectCount(new LambdaQueryWrapper<VisitSummaryEntity>()
                .eq(VisitSummaryEntity::getRefId, theme)
刘基明's avatar
刘基明 committed
44
                .eq(VisitSummaryEntity::getRefType, VisitTypeEnum.TOPIC_PAGE_VIEW.getCode()));
刘基明's avatar
刘基明 committed
45 46 47 48 49 50
    }

    // 查询主题 浏览量
    public Integer queryThemeVisit(List<String> themes) {
        return visitSummaryMapper.selectCount(new LambdaQueryWrapper<VisitSummaryEntity>()
                .in(VisitSummaryEntity::getRefId, themes)
刘基明's avatar
刘基明 committed
51
                .eq(VisitSummaryEntity::getRefType, VisitTypeEnum.TOPIC_PAGE_VIEW.getCode()));
张辰's avatar
张辰 committed
52
    }
张辰's avatar
张辰 committed
53 54 55

    // 更新访问时长
    public void updateDurByIdent(String ident, Integer dur) {
刘基明's avatar
刘基明 committed
56
//        visitSummaryMapper.updateDurByIdent(ident, dur);
张辰's avatar
张辰 committed
57
    }
刘基明's avatar
刘基明 committed
58 59 60 61 62 63 64 65 66 67 68 69

    public LocalDateTime queryLatestViewFollow(String userId) {
        List<VisitSummaryEntity> visitSummaryEntities = visitSummaryMapper.selectList(new LambdaQueryWrapper<VisitSummaryEntity>()
                .eq(VisitSummaryEntity::getVisitorId, userId)
                .eq(VisitSummaryEntity::getRefType, VisitTypeEnum.FOLLOW_THEME_VIEW.getCode())
                .orderByDesc(VisitSummaryEntity::getCreateTime));
        if (CollectionUtils.isEmpty(visitSummaryEntities)) {
            return null;
        } else {
            return visitSummaryEntities.get(0).getCreateTime();
        }
    }
张辰's avatar
张辰 committed
70
}