package org.jeecg.ctop.material.service;

import com.alibaba.fastjson.JSONObject;
import org.jeecg.common.api.vo.Result;
import org.jeecg.ctop.material.entity.vo.KuaiShouOperateAccountVo;
import org.jeecg.ctop.material.entity.vo.KuaiShouOperateProjectVo;

import javax.servlet.http.HttpServletResponse;
import java.text.ParseException;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * 盯盘接口
 */
public interface MaterialStareService {

    Result kuaiShousumData(String mediaType, String type, String startTime, String endTime, String userId);

    Result kuaiShousumDataPersonal(String mediaType, String startTime, String endTime, String userId);

    Result kuaiShouOperateDateTotal(String mediaType, String startTime, String endTime, String userId);

    Result kuaiShouOperateDateTotalPersonal(String mediaType, String startTime, String endTime, String userId);

    Result getKuaiShouOperateInfo(Integer pageNum, int pageSize, String mediaType, String startTime, String endTime, String userId);

    Result exportKuaiShouOperateInfo(String startTime, String endTime, String mediaType, String userId, HttpServletResponse response);

    Result getKuaiShouOperateProjectInfo(Integer pageNum, int pageSize, String mediaType, String startTime, String endTime, String userId);

    List<KuaiShouOperateProjectVo> exportKuaiShouOperateProjectInfo(String mediaType, String startTime, String endTime, String userId);

    Result getKuaiShouOperateAccountInfo(Integer pageNum, int pageSize, String startTime, String endTime, String projectId, String userId, String mediaType);

    List<KuaiShouOperateAccountVo> exportKuaiShouOperateAccountInfo(String startTime, String endTime, String projectId, String userId);

    Result getKuaiShouAccountInfo(long accountId);

    Result getKuaiShouAccountInfoBrokenLine(long accountId, String startTime, String endTime, String type);

    Result getKuaiShouAccountMaterialNewAndEffectAndFaddish(long accountId, String searchType, String startTime, String endTime, Integer pageNum, Integer pageSize);

    Result getKuaiShouAccountPieChar(long accountId, String startTime, String endTime, String type);


    Result kuaiShouRealTimeUnitDateInfo(long accountId, Integer pageNum, Integer pageSize);


    Result getCompanyAllSubordinateByUserId(String userId);


    Result<List<JSONObject>> participateListByMediaIdAllSubordinate(JSONObject requestJson);

    List<JSONObject> getProjectByUserIdAndMediaIdsSubordinate(Set<String> userIds, List<Integer> mediaIds);

    Map<Long, List<JSONObject>> getAccountListByProjectListSubordinate(Set<String> userIds, List<JSONObject> projectList);

    Result getOperationGroupData(String userId, String mediaType, String startTime, String endTime, Integer pageNum, Integer pageSize);

    Result exportOperationGroupData(String userId, String mediaType, String startTime, String endTime, HttpServletResponse response);

    List<KuaiShouOperateProjectVo> getOperateProjectInfo(Integer pageNum, int pageSize, String mediaType, String startTime, String endTime, String userId) throws ParseException;

}
