package com.lightinit.hsdataplatformresdir.mapper;

import com.lightinit.hsdataplatformresdir.entity.Order;
import com.lightinit.hsdataplatformresdir.entity.OrderExample;

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

import com.lightinit.hsdataplatformresdir.model.admin.*;
import org.apache.ibatis.annotations.Param;

public interface OrderMapper {
    long countByExample(OrderExample example);

    int deleteByExample(OrderExample example);

    int deleteByPrimaryKey(Long id);

    int insert(Order record);

    int insertSelective(Order record);

    List<Order> selectByExampleWithBLOBs(OrderExample example);

    List<Order> selectByExample(OrderExample example);

    Order selectByPrimaryKey(Long id);

    int updateByExampleSelective(@Param("record") Order record, @Param("example") OrderExample example);

    int updateByExampleWithBLOBs(@Param("record") Order record, @Param("example") OrderExample example);

    int updateByExample(@Param("record") Order record, @Param("example") OrderExample example);

    int updateByPrimaryKeySelective(Order record);

    int updateByPrimaryKeyWithBLOBs(Order record);

    int updateByPrimaryKey(Order record);

    List<OrderListModel> queryOrderList(OrderSearchModel inputModel);

    long queryOrderCount(OrderSearchModel inputModel);

    List<DownstreamListModel> queryList(DownstreamSearchModel inputModel);

    long queryCount(DownstreamSearchModel inputModel);

    List<Map<String,Object>> getExpiringOrder(@Param("expireTime")Date expireTime);

    int updateOrder(@Param("orderNumber") String orderNumber);

    List<YearMonthDayModel> queryCountList(@Param("year")String year,@Param("month") String month,@Param("day") String day);
}