VisitSummaryManager.java 2.03 KB
Newer Older
刘基明's avatar
刘基明 committed
1 2
package com.tanpu.community.manager;

张辰's avatar
张辰 committed
3
import com.alibaba.fastjson.JSON;
刘基明's avatar
刘基明 committed
4
import com.tanpu.common.auth.UserHolder;
张辰's avatar
张辰 committed
5
import com.tanpu.community.api.beans.vo.KafkaDurationUptMsg;
刘基明's avatar
刘基明 committed
6
import com.tanpu.community.api.enums.VisitTypeEnum;
张辰's avatar
张辰 committed
7
import com.tanpu.community.dao.entity.community.VisitSummaryEntity;
刘基明's avatar
刘基明 committed
8
import com.tanpu.community.service.VisitSummaryService;
张辰's avatar
张辰 committed
9 10 11
import com.tanpu.community.util.ConvertUtil;
import lombok.extern.slf4j.Slf4j;
import org.elasticsearch.common.recycler.Recycler;
刘基明's avatar
刘基明 committed
12
import org.springframework.beans.factory.annotation.Autowired;
张辰's avatar
张辰 committed
13 14
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.kafka.core.KafkaTemplate;
刘基明's avatar
刘基明 committed
15 16 17 18
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

张辰's avatar
张辰 committed
19
@Slf4j
刘基明's avatar
刘基明 committed
20 21 22
@Service
public class VisitSummaryManager {

张辰's avatar
张辰 committed
23 24 25 26 27 28
    private static final String kafakTopic = "tp_new_community_queue_ubr_dur_upd";

    @Autowired
    private KafkaTemplate<String, String> kafkaTemplate;

    @Autowired
刘基明's avatar
刘基明 committed
29 30 31 32 33
    private VisitSummaryService visitSummaryService;

    @Autowired
    private UserHolder userHolder;

张辰's avatar
张辰 committed
34 35 36 37 38 39

    @KafkaListener(topics = kafakTopic)
    public void updateVisitSummary(String message) {
        KafkaDurationUptMsg msg = JSON.parseObject(message, KafkaDurationUptMsg.class);
        // ident在每次进入新页面 & 回退 的时候都会随机生成一个,所以用ident做唯一key即可。
        VisitSummaryEntity vs = ConvertUtil.convertFromKafka(msg);
张辰's avatar
张辰 committed
40
        visitSummaryService.insertOrUpdateDur(vs);
张辰's avatar
张辰 committed
41 42 43
    }


刘基明's avatar
刘基明 committed
44 45 46 47 48
    public void addTopicPageView(String topicId) {
        String userId = userHolder.getUserId();
        visitSummaryService.addPageView(userId, topicId, VisitTypeEnum.TOPIC_PAGE_VIEW);
    }

刘基明's avatar
刘基明 committed
49
    public void addFollowThemeView(String themeId) {
刘基明's avatar
刘基明 committed
50
        String userId = userHolder.getUserId();
刘基明's avatar
刘基明 committed
51 52 53 54 55 56
        visitSummaryService.addPageView(userId, themeId, VisitTypeEnum.THEME_PAGE_VIEW);
    }

    public void addFollowThemeView() {
        String userId = userHolder.getUserId();
        visitSummaryService.addPageView(userId, userId, VisitTypeEnum.FOLLOW_THEME_VIEW);
刘基明's avatar
刘基明 committed
57 58
    }
}