package com.tanpu.community.manager;

import com.alibaba.fastjson.JSON;
import com.tanpu.community.api.beans.vo.KafkaDurationUptMsg;
import com.tanpu.community.dao.entity.community.VisitSummaryEntity;
import com.tanpu.community.service.VisitSummaryService;
import com.tanpu.community.util.ConvertUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.stereotype.Service;

@Slf4j
@Service
public class VisitSummaryManager {

    private static final String kafakTopic = "tp_new_community_queue_ubr_dur_upd";

    @Autowired
    private KafkaTemplate<String, String> kafkaTemplate;

    @Autowired
    private VisitSummaryService visitSummaryService;


    @KafkaListener(topics = kafakTopic)
    public void updateVisitSummary(String message) {
        log.info("receive kafka msg: {}", message);
        KafkaDurationUptMsg msg = JSON.parseObject(message, KafkaDurationUptMsg.class);
        // ident在每次进入新页面 & 回退 的时候都会随机生成一个,所以用ident做唯一key即可。
        VisitSummaryEntity vs = ConvertUtil.convertFromKafka(msg);
        visitSummaryService.insertOrUpdateDur(vs);
    }
}