package cn.superdesk.uniorder.dao.mapper.operationCenter;

import cn.superdesk.uniorder.dao.entity.operationCenter.OperationCenterOrder;
import cn.superdesk.uniorder.dao.entity.operationCenter.OperationCenterOrderExample;
import java.util.List;
import java.util.Map;

import cn.superdesk.uniorder.dto.param.operationCenter.order.OperationCenterOrderParam;
import cn.superdesk.uniorder.dto.vo.operationCenter.order.OperationCenterOrderDetailsVo;
import cn.superdesk.uniorder.dto.vo.operationCenter.order.OperationCenterOrderTransactionLogVo;
import cn.superdesk.uniorder.dto.vo.operationCenter.order.OperationCenterOrderVo;
import org.apache.ibatis.annotations.Param;

public interface OperationCenterOrderMapper {
    long countByExample(OperationCenterOrderExample example);

    int deleteByExample(OperationCenterOrderExample example);

    int deleteByPrimaryKey(Long id);

    int insert(OperationCenterOrder record);

    int insertSelective(OperationCenterOrder record);

    List<OperationCenterOrder> selectByExample(OperationCenterOrderExample example);

    OperationCenterOrder selectByPrimaryKey(Long id);

    int updateByExampleSelective(@Param("record") OperationCenterOrder record, @Param("example") OperationCenterOrderExample example);

    int updateByExample(@Param("record") OperationCenterOrder record, @Param("example") OperationCenterOrderExample example);

    int updateByPrimaryKeySelective(OperationCenterOrder record);

    int updateByPrimaryKey(OperationCenterOrder record);

    /**
     * 根据条件查询订单列表
     * @param param 查询条件
     * @return
     */

    List<OperationCenterOrderVo> getOperatorCenterOrderList(OperationCenterOrderParam param);

    /**
     *  根据条件汇总，订单统计
     * @param param 查询条件
     * @return
     */
    Map<String, Object> getOrderStatisticsCount(OperationCenterOrderParam param);

    /**
     * 根据条件查询，导出订单列表
     * @param param 查询条件
     * @return
     */
    List<OperationCenterOrderDetailsVo> getExcelOpCenterOrderList(OperationCenterOrderParam param);


    List<OperationCenterOrderVo> getOrderByOrderNo(String platformCode,String orderSn,String refundOriginOrderSn);


    List<OperationCenterOrderTransactionLogVo> getExcelOpCenterOrderTransactionLogList(OperationCenterOrderParam param);
}