package com.kxs.stat.biz.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.kxs.common.core.util.R;
import com.kxs.product.api.model.KxsBrand;
import com.kxs.stat.api.dto.statUser.GetActivityStatByIdAndTimeDTO;
import com.kxs.stat.api.model.KxsUserActTrade;
import com.kxs.stat.api.vo.GetActivityStatByIdAndTimeVO;
import com.kxs.stat.api.vo.myUser.TrendVO;
import com.kxs.stat.biz.constant.enums.TotalTypeEnum;

import java.util.List;
import java.util.Map;

/**
 * 创客激活统计表(KxsUserActTrade)表服务接口
 *
 * @author 系统
 * @since 2024-05-07 17:25:06
 */
public interface KxsUserActTradeService extends IService<KxsUserActTrade> {


    /**
     * 百城千团活动期间团队激活商户统计
     *
     * @param param 参数
     * @return {@link List}<{@link GetActivityStatByIdAndTimeVO}>
     */
    List<GetActivityStatByIdAndTimeVO> getActivityStatByIdAndTime(List<GetActivityStatByIdAndTimeDTO> param);

    /**
     * 计奖交易-激活商户统计
     *
     * @param totalType 总类型
     * @param userId    用户 ID
     * @param month     月
     * @return {@link R}
     */
    R getActivateMerchantList(Integer totalType,Long userId,String month);

    /**
     * 获取 Add ACT MCH 趋势
     *
     * @param userId    用户 ID
     * @param times     次
     * @param dateType  日期类型 0月 1日
     * @param totalType 统计类型枚举
     * @param brandMap 品牌map
     * @return {@link List}<{@link TrendVO}>
     */
    List<TrendVO> getAddActMchTrend(Long userId, List<Integer> times, Integer dateType, Integer totalType, Map<Integer, KxsBrand> brandMap);
}

