VisitSummaryManager.java 1.54 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.biz.common.enums.clue.PageEnum;
张辰's avatar
张辰 committed
5
import com.tanpu.community.api.beans.vo.KafkaDurationUptMsg;
刘基明's avatar
刘基明 committed
6 7
import com.tanpu.community.dao.entity.community.VisitLogEntity;
import com.tanpu.community.service.VisitLogService;
张辰's avatar
张辰 committed
8 9
import com.tanpu.community.util.ConvertUtil;
import lombok.extern.slf4j.Slf4j;
刘基明's avatar
刘基明 committed
10
import org.springframework.beans.factory.annotation.Autowired;
张辰's avatar
张辰 committed
11 12
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.kafka.core.KafkaTemplate;
刘基明's avatar
刘基明 committed
13 14
import org.springframework.stereotype.Service;

张辰's avatar
张辰 committed
15 16 17
import java.util.Arrays;
import java.util.List;

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

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

    @Autowired
    private KafkaTemplate<String, String> kafkaTemplate;

    @Autowired
刘基明's avatar
刘基明 committed
28
    private VisitLogService visitLogService;
刘基明's avatar
刘基明 committed
29

张辰's avatar
张辰 committed
30 31 32

    @KafkaListener(topics = kafakTopic)
    public void updateVisitSummary(String message) {
张辰's avatar
张辰 committed
33
        // {"durMillsInc":10000,"ident":"AD7B8CE8-2DA4-4FB4-907F-C551B926BA5C","localDate":"2021-08-02","pageId":"p13503","refId":"88737580570230824","visitorId":"275321532031467520"}
张辰's avatar
张辰 committed
34
//        log.info("receive kafka msg: {}", message);
张辰's avatar
张辰 committed
35
        KafkaDurationUptMsg msg = JSON.parseObject(message, KafkaDurationUptMsg.class);
张辰's avatar
张辰 committed
36

张辰's avatar
张辰 committed
37
        // ident在每次进入新页面 & 回退 的时候都会随机生成一个,所以用ident做唯一key即可。
刘基明's avatar
刘基明 committed
38 39
        VisitLogEntity vs = ConvertUtil.convertFromKafka(msg);
        visitLogService.insertOrUpdateDur(vs);
张辰's avatar
张辰 committed
40
    }
刘基明's avatar
刘基明 committed
41
}