package com.ruoyi.web.modules.finance.mapper;

import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.ruoyi.web.modules.finance.domain.BizShopWithdraw;
import com.ruoyi.web.modules.finance.dto.PlatformWithdrawAuditQuery;
import com.ruoyi.web.modules.finance.dto.PlatformWithdrawSummaryDetailQuery;
import com.ruoyi.web.modules.finance.dto.PlatformWithdrawSummaryQuery;
import com.ruoyi.web.modules.finance.dto.SellerWithdrawQuery;
import com.ruoyi.web.modules.finance.vo.PlatformWithdrawAuditListRowVO;
import com.ruoyi.web.modules.finance.vo.PlatformWithdrawSummaryDetailRowVO;
import com.ruoyi.web.modules.finance.vo.PlatformWithdrawSummaryRowVO;
import com.ruoyi.web.modules.finance.vo.SellerWithdrawListRowVO;

public interface BizShopWithdrawMapper
{
    String selectMaxWithdrawNoByPrefix(@Param("prefix") String prefix);

    int insert(BizShopWithdraw withdraw);

    BizShopWithdraw selectById(Long withdrawId);

    List<SellerWithdrawListRowVO> selectSellerList(@Param("shopId") Long shopId,
            @Param("query") SellerWithdrawQuery query);

    List<PlatformWithdrawAuditListRowVO> selectPlatformList(@Param("query") PlatformWithdrawAuditQuery query);

    List<PlatformWithdrawSummaryRowVO> selectPlatformSummaryList(
            @Param("query") PlatformWithdrawSummaryQuery query);

    List<PlatformWithdrawSummaryDetailRowVO> selectSummaryDetailList(@Param("shopId") Long shopId,
            @Param("query") PlatformWithdrawSummaryDetailQuery query);

    int countByStatus(@Param("withdrawStatus") String withdrawStatus);

    int updateForAudit(BizShopWithdraw withdraw);
}
