package org.jeecg.modules.performance.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.performance.entity.OptimizerConfig;
import org.jeecg.modules.performance.entity.Performance;
import org.jeecg.modules.performance.vo.DesignerCostDetailVO;
import org.jeecg.modules.performance.vo.OptimizerCostDetailVO;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * 设计师季度绩效表
 *
 * @author jeecg-boot
 * @version V1.0
 * @date 2019-12-10
 */
public interface IPerformanceService extends IService<Performance> {
    /**
     * 1：根据角色获取用户当前季度的所有视频消耗相关数据
     */
    List<DesignerCostDetailVO> getTotalCostDetailByRoleId(String roleId);

    /**
     * 获取优化师总消耗数据信息
     */
    List<OptimizerCostDetailVO> getOptimizerTotalCostDetailGroupByUserId(String mediaType, String userId, Integer startIndex, Integer pageSize);

    OptimizerCostDetailVO getOptimizerTotalCost(String mediaType);

    Map<String, Object> getUserOptimizerProjectList(Integer pageNo, Integer pageSize, String appType);

    Map<String, Object> getUserOptimizerAccountList(String apptype, Long projectId, Integer pageNo, Integer pageSize);

    Map<String, Object> getMemberPerformanceByUserId(OptimizerConfig config, OptimizerCostDetailVO totalCostVo);

    BigDecimal getBytedanceSeasonTotalCost(String startDate, String endDate);

    BigDecimal getKuaishouSeasonTotalCost(String startDate, String endDate);

    BigDecimal getKuaishouSalesSeasonTotalCostByParams(String startDate, String endDate, String salesId, String advertiserId, Long accountId);

    BigDecimal getBytedanceSalesSeasonTotalCostByParams(String startDate, String endDate, String saledId, String advertiserId, Long accountId);

    BigDecimal getSalesSeasonTotalCostByParams(String startDate, String endDate, String saledId, String advertiserId, Long accountId, String mediaType);
}
