
package com.tmerclub.cloud.flow.service;

import cn.hutool.core.date.DateTime;
import com.tmerclub.cloud.api.product.dto.ProdEffectDTO;
import com.tmerclub.cloud.api.product.vo.ProdEffectRespVO;
import com.tmerclub.cloud.common.database.dto.PageDTO;
import com.tmerclub.cloud.common.database.vo.PageVO;
import com.tmerclub.cloud.flow.dto.SingleProdTrendDTO;
import com.tmerclub.cloud.flow.vo.FlowProdEffectDataExcelVO;
import com.tmerclub.cloud.flow.vo.ShopFlowInfoVO;
import com.tmerclub.cloud.flow.vo.SingleProdTrendVO;

import java.util.List;

/**
 * 流量分析—商品分析
 *
 * @author YXF
 * @date 2021-05-21 15:25:19
 */
public interface ProductAnalyseService {

    /**
     * 获取商品洞察-商品效果分析
     *
     * @param pageDTO       分页参数
     * @param prodEffectDTO 筛选参数
     * @return 商品效果分析数据
     */
    PageVO<ProdEffectRespVO> getProductEffect(PageDTO pageDTO, ProdEffectDTO prodEffectDTO);

    /**
     * 获取商品洞察导出数据
     * @param pageDTO
     * @param prodEffectDTO
     * @return
     */
    List<FlowProdEffectDataExcelVO> listProdEffectExcel(PageDTO pageDTO, ProdEffectDTO prodEffectDTO);

    /**
     * 获取店铺流量排行榜
     *
     * @param endTime  结束时间
     * @param dayCount 天数
     * @param limit    条数
     * @return
     */
    List<ShopFlowInfoVO> listShopRankIngByFlow(DateTime endTime, Integer dayCount, Integer limit);

    /**
     * 删除商品统计数据
     *
     * @param spuId 商品id
     */
    void deleteSpuDataBySpuId(Long spuId);

    /**
     *  获取供应商店铺流量信息和近30天的商品访问流量排行榜
     * @param dayCount 天数
     * @param limit    排行榜条数
     * @return
     */
    ShopFlowInfoVO getSupplierFlowInfoAndProdRankIng(Integer dayCount, Integer limit);

    /**
     * 获取单个商品趋势图
     * @param singleProdTrendDTO 筛选参数
     * @return 单个商品趋势图
     */
    List<SingleProdTrendVO> getSingleProdTend(SingleProdTrendDTO singleProdTrendDTO);
}
