package com.ruixuan.isc.mapper;

import com.alibaba.fastjson.JSONObject;
import org.apache.ibatis.annotations.Param;

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

public interface SupplyChainMapper {
    List<JSONObject> getOrderList(Map<String, Object> requestMap);

    List<JSONObject> getTopOrders(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> getTopAnchors(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> ratioMap);

    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);

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

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

    List<JSONObject> getSupplyChainUserList();

    boolean unbindUser(@Param("itemId") Long itemId);

    boolean bindUser(@Param("itemId") Long itemId, @Param("userId") Long userId, @Param("nikeName") 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);

    String getCookie(Long regId);

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

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

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

    JSONObject selectOrderRateBytedance(@Param("promoterIds") List<String> promoterIds, @Param("itemIds") List<Long> itemIds, @Param("statDate") Long statDate, @Param("endDate") Long endDate);

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

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

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

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

    JSONObject selectOrderInfoByItemIdsBytedance(@Param("itemIds") List<Long> itemIds, @Param("startDate") Long startDate, @Param("endDate") Long 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);

    List<JSONObject> getUserList(@Param("map") Map<Long, Long> map);

    String getUserName(@Param("promoterId") 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 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);

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

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