package com.bonus.canteen.core.supply.mapper;

import com.bonus.canteen.core.supply.dto.*;
import com.bonus.canteen.core.supply.po.OrderGoodsPayRefundAmountModel;
import com.bonus.canteen.core.supply.vo.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDateTime;
import java.util.List;

@Mapper
public interface DrpSupplierComeGoMapper {
   List<DrpSupplierMaterialIntoAndOutPageVO> pageSupplierMaterialIntoAndOut(@Param("content") DrpSupplierMaterialIntoAndOutPageDTO content, @Param("status") Integer status, @Param("warehouseAuthority") List<Long> warehouseAuthority, @Param("areaAuth") List<Long> areaAuth);

   List<DrpSupplierComeAndGoPageVO> pageSupplierComeAndGo(@Param("content") DrpSupplierComeAndGoPageDTO content, @Param("orderStatus") Integer orderStatus);

   List<DrpPayAndRefundRecordsListVO> listPayAndRefundRecords(@Param("content") DrpPayAndRefundRecordsListDTO content);

   List<OrderGoodsPayRefundAmountModel> listPayAndRefundAmount(@Param("orderGoodsIdList") List<String> orderGoodsIdList);

   List<DrpOrderPayAndRefundRecordsPageVO> pageWaitPayAndRefundRecords(@Param("content") DrpWaitPayAndRefundRecordsPageDTO content, @Param("orderStatus") Integer orderStatus, @Param("approveStatus") Integer approveStatus, @Param("supplierConfirmStatus") Integer supplierConfirmStatus);

   DrpPayAndRefundTotalVO payAndRefundTotal(@Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime);

   DrpPayAndRefundSumGetByOrderIdVO getPaySumByOrderId(@Param("content") DrpPayAndRefundSumGetByOrderIdDTO content);

   DrpPayAndRefundSumGetByOrderIdVO getRefundSumByOrderId(@Param("content") DrpPayAndRefundSumGetByOrderIdDTO content);
}
