package shop.alien.store.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import shop.alien.entity.store.ManagementInfo;
import shop.alien.entity.store.vo.ManagementInfoVo;

import java.util.HashMap;
import java.util.List;

public interface ManagementInfoService {

    /**
     * 对账结算店铺套餐、代金券信息统计查询
     */
    IPage<ManagementInfo> getAllManagementInfo(int pageNo, int pageSize, String storeName);

    /**
     * 店铺账单统计
     */
    HashMap<String, Object> storeBillingStatistics(String queryType);

    /**
     * 获取店铺订单详情，根据id
     */
    IPage<ManagementInfoVo> getStoreOrderDetail(int pageNo, int pageSize, String storeId, String orderNo, String userId, String userName);

    /**
     * 获取提现申请列表
     */
    IPage<ManagementInfoVo> getApplicationForWithdrawal(int pageNo, int pageSize, Integer storeId, String storeName);

    ManagementInfoVo getCashOutDetail(Integer id);

    /**
     * 店铺明细账单统计
     */
    HashMap<String, Object> storeDetailBillingStatistics(String storeId);

    /**
     * 生成结算回执单
     */
    HashMap<String, Object> generateClearingReceipt(String cashId);

    /**
     * 获取基本统计数据
     */
    HashMap<String, Object> getBasicStatistics();

    /**
     * 获取净利润
     */
    List<ManagementInfoVo> getQueryNetProfit(Integer type);

    /**
     * 获取成交金额
     */
    List<ManagementInfoVo> getTradingVolume(Integer type);

    /**
     * 获取订单量
     */
    List<ManagementInfoVo> getOrderQuantity(Integer type);

    /**
     * 商铺订单销量排行（单）TOP 10
     */
    List<ManagementInfoVo> getSalesVolume(Integer type);

    /**
     * 数据可视化-平台净利润（￥） 详情页面
     */
    IPage<ManagementInfoVo> getStorePlatformProfitDetails(Integer pageNum, Integer pageSize, String storeId, String type, String startTime, String entTime, String storeName);

    /**
     * 数据可视化-平台净利润（￥） 详情页面
     */
    IPage<ManagementInfoVo> getStorePlatformOrderVolume(Integer pageNum, Integer pageSize, String orderId, String type, String orderType, String startTime, String entTime, String couponName, String couponType, String storeName);

}