package com.jsowell.pile.mapper;

import com.jsowell.pile.domain.SettleOrderReport;
import com.jsowell.pile.dto.MerchantOrderReportDTO;
import com.jsowell.pile.vo.web.MerchantOrderReportVO;
import com.jsowell.pile.vo.web.SettleOrderReportVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 结算订单报Mapper接口
 *
 * @author jsowell
 * @date 2023-06-05
 */
@Repository
public interface SettleOrderReportMapper {
    /**
     * 查询结算订单报
     *
     * @param id 结算订单报主键
     * @return 结算订单报
     */
    public SettleOrderReport selectSettleOrderReportById(Long id);

    /**
     * 查询结算订单报列表
     *
     * @param settleOrderReport 结算订单报
     * @return 结算订单报集合
     */
    public List<SettleOrderReport> selectSettleOrderReportList(SettleOrderReport settleOrderReport);

    /**
     * 新增结算订单报
     *
     * @param settleOrderReport 结算订单报
     * @return 结果
     */
    public int insertSettleOrderReport(SettleOrderReport settleOrderReport);

    /**
     * 修改结算订单报
     *
     * @param settleOrderReport 结算订单报
     * @return 结果
     */
    public int updateSettleOrderReport(SettleOrderReport settleOrderReport);

    /**
     * 删除结算订单报
     *
     * @param id 结算订单报主键
     * @return 结果
     */
    public int deleteSettleOrderReportById(Long id);

    /**
     * 批量删除结算订单报
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSettleOrderReportByIds(Long[] ids);

    /**
     * 根据运营商id查询订单报表
     * @param dto
     * @return
     */
    List<SettleOrderReportVO> getMerchantOrderReport(@Param("dto") MerchantOrderReportDTO dto);
}
