package com.ruixuan.isc.service;

import com.alibaba.fastjson.JSONObject;

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

public interface ISupplyChainService {
    // 获取订单数据
    List<JSONObject> getOrderList(Map<String, Object> requestMap);

    //达人带货详情
    List<JSONObject> anchorOrderDetail(Map<String, Object> requestMap);

    //订单统计
    List<JSONObject> orderStatistics(Map<String, Object> requestMap);

    //商品列表
    List<JSONObject> itemList(Map<String, Object> requestMap);
    List<JSONObject> itemBindList(Map<String, Object> requestMap);

    //商品详情
    List<JSONObject> itemDetail(Map<String, Object> requestMap);

    //商品服务费
    List<JSONObject> itemServiceCharge(Map<String, Object> requestMap);

    //首页-订单数量查询
    JSONObject getOrderTotal(Map<String, Object> requestMap);

    // 首页-订单数量环比
    Double getOrderTotalRatio(Map<String, Object> ratioMap);

    // 首页-金额数据
    JSONObject getAmountTotal(Map<String, Object> requestMap);

    // 首页-金额数据环比
    Double getAmountTotalRatio(Map<String, Object> ratioMap);

    //首页-服务费数据
    JSONObject getServiceAmountTotal(Map<String, Object> requestMap);

    //首页-订单排行（环比）
    List<JSONObject> getOrderRankRatioList(Map<String, Object> requestMap);

    //首页-订单排行（无环比）
    List<JSONObject> getOrderRankList(Map<String, Object> requestMap);

    //首页-达人排行（环比）
    List<JSONObject> getPromoterRankRatioList(Map<String, Object> requestMap);

    //首页-达人排行（无环比）
    List<JSONObject> getPromoterRatioList(Map<String, Object> requestMap);

    // 一级页面达人数据
    List<JSONObject> exportPromoterTotal(Map<String, Object> requestMap);

    // 达人数据导出
    List<JSONObject> exportPromoter(Map<String, Object> requestMap);

    //订单数据导出
    List<JSONObject> exportOrder(Map<String, Object> requestMap);

    //根据商品ID获取top达人
    List<JSONObject> getTopPromoterByItemId(Map<String, Object> requestMap);

    //商品认领列表
    List<JSONObject> bindUserItemList(Map<String, Object> requestMap);

    // 获取供应链人员列表
    List<JSONObject> getSupplyChainUserList();

    // 商品解绑
    boolean unbindUser(Long itemId);

    // 商品绑定
    boolean bindUser(Long itemId, Long userId, String nikeName);

    //供应链管理员统计列表
    List<JSONObject> adminReportList(Map<String, Object> requestMap);

    // 认领商品列表
    List<JSONObject> userItemDetail(Map<String, Object> requestMap);

    // 获取时段数据对比
    JSONObject getTimeIntervalRatio(Map<String, Object> requestMap);

    // 首页-曲线图
    List<JSONObject> indexStatistics(Map<String, Object> requestMap);

    // 商品热认领汇总
    JSONObject itemBindSummary();

    // 商品绑定人员汇总
    JSONObject userItemTotal(Map<String, Object> requestMap);

    //认领列表导出
    List<JSONObject> exportUserItemDetail(Map<String, Object> requestMap);

    JSONObject selectOrderInfo(List<String> promoterIds, String startDate, String endDate);

    JSONObject selectOrderRate(List<String> promoterIds, List<Long> itemIds, Long statDate, Long endDate);

    JSONObject selectOrderRateBytedance(List<String> promoterIds, List<Long> itemIds, Long startHourTemp, Long endHourTemp);

    List<JSONObject> getMonthOrderAmount(Map<String, Object> map);

    JSONObject getMonthOrderAmountTotal(Map<String, Object> map);

    JSONObject selectOrderInfoByItemIds(List<Long> itemIds, String startDate, String endDate);

    List<JSONObject> getMonthOrderAmountByItems(Map<String, Object> map);

    JSONObject getMonthOrderAmountTotalByItems(Map<String, Object> map);

    List<JSONObject> bdReportList(Map<String, Object> requestMap);

    List<JSONObject> bdDetailList(Map<String, Object> requestMap);

    List<JSONObject> bdTotal(Map<String, Object> requestMap);

    List<JSONObject> exportBdDetail(Map<String, Object> requestMap);

    String getUserName(Long promoterId);

    List<JSONObject> exportBdReportList(Map<String, Object> requestMap);

    List<JSONObject> exportAdminReportList(Map<String, Object> requestMap);

    List<JSONObject> getSupplyChainCourtshipUserList();

    // 招商管理 绑定时间查询
    List<JSONObject> adminReportListByBind(Map<String, Object> requestMap);
    // 招商管理 绑定时间下载
    List<JSONObject> exportAdminReportListByBind(Map<String, Object> requestMap);

    List<JSONObject> bdReportListV2(Map<String, Object> requestMap);

    List<JSONObject> bdTotalV2(Map<String, Object> requestMap);

    List<JSONObject> bdDetailListV2(Map<String, Object> requestMap);

    JSONObject selectOrderInfoByItemIdsBytedance(List<Long> itemIds, Long startDate, Long endDate);

    List<JSONObject> getMonthOrderAmountBytedance(Map<String, Object> map);

    JSONObject getMonthOrderAmountTotalBytedance(Map<String, Object> map);

    List<JSONObject> getMonthOrderAmountByItemsBytedance(Map<String, Object> map);

    JSONObject getMonthOrderAmountTotalByItemsBytedance(Map<String, Object> map);

    List<JSONObject> getOrderRankRatioListBytedance(Map<String, Object> requestMap);

    List<JSONObject> getOrderRankListBytedance(Map<String, Object> requestMap);

    List<JSONObject> getPromoterRankRatioListBytedance(Map<String, Object> requestMap);

    List<JSONObject> getPromoterRatioListBytedance(Map<String, Object> requestMap);

    JSONObject selectOrderInfoBytedance(List<String> promoterIds, Long startDate, Long endDate);

    List<JSONObject> bdReportListV2ByBind(Map<String, Object> requestMap);


    List<JSONObject> exportBindOrder(Map<String, Object> requestMap);
}
