package com.tanpu.community.service;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.tanpu.community.api.enums.VisitTypeEnum;
import com.tanpu.community.dao.entity.community.VisitSummaryEntity;
import com.tanpu.community.dao.mapper.community.VisitSummaryMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.List;

@Slf4j
@Service
public class VisitSummaryService {

    @Resource
    private VisitSummaryMapper visitSummaryMapper;

    @Transactional
    public void addPageView(String userId, String targetId, VisitTypeEnum type) {
        visitSummaryMapper.insert(VisitSummaryEntity.builder()
                .visitorId(userId)
                .refId(targetId)
                .refType(type.getCode())
                .build());
    }

    // 查询话题 详细页面 浏览量
    public Integer queryTopicDetailVisit(String topicId) {
        return visitSummaryMapper.selectCount(new LambdaQueryWrapper<VisitSummaryEntity>()
                .eq(VisitSummaryEntity::getRefId, topicId)
                .eq(VisitSummaryEntity::getRefType,VisitTypeEnum.TOPIC_PAGE_VIEW.getCode()));
    }

    // 查询主题 浏览量
    public Integer queryThemeVisit(String theme) {
        return visitSummaryMapper.selectCount(new LambdaQueryWrapper<VisitSummaryEntity>()
                .eq(VisitSummaryEntity::getRefId, theme)
                .eq(VisitSummaryEntity::getRefType,VisitTypeEnum.TOPIC_PAGE_VIEW.getCode()));
    }

    // 查询主题 浏览量
    public Integer queryThemeVisit(List<String> themes) {
        return visitSummaryMapper.selectCount(new LambdaQueryWrapper<VisitSummaryEntity>()
                .in(VisitSummaryEntity::getRefId, themes)
                .eq(VisitSummaryEntity::getRefType,VisitTypeEnum.TOPIC_PAGE_VIEW.getCode()));
    }

    // 更新访问时长
    public void updateDurByIdent(String ident, Integer dur) {
//        visitSummaryMapper.updateDurByIdent(ident, dur);
    }
}