/**
 * @filename:SeparateAccountsService 2024-10-23
 * @project KJT v1.1.0 Copyright(c) 2024 wanglang Co. Ltd. All right reserved.
 */
package com.trade.admin.business.separateaccounts.service;

import com.trade.admin.business.separateaccounts.dto.SubmitSeparateAccountsDto;
import com.trade.admin.business.separateaccounts.vo.SeparateAccountsDetailVo;

import com.trade.admin.business.separateaccounts.vo.SeparateAccountsSubmitVo;
import com.trade.common.core.page.GridPage;
import com.trade.service.business.separateaccounts.domain.SeparateAccounts;
import com.trade.service.business.separateaccounts.dto.SeparateAccountsSearchDto;
import com.trade.service.business.separateaccounts.vo.SeparateAccountsPageVo;
import com.trade.service.finance.paymentcollection.domain.BillingIncome;

import java.util.List;

/**
 * @Description:分账表服务层
 * @version: v1.1.0
 * @author: wanglang
 */
public interface BSeparateAccountsService {

    /**
     * 保存分账记录
     * 
     * @param income
     * @param operator
     * @return boolean
     */
    boolean saveSeparateAccounts(BillingIncome income, String operator);

    /**
     * 分页查询分账记录
     * 
     * @param searchDto 查询条件
     * @return GridPage<SeparateAccounts>
     */
    GridPage<SeparateAccountsPageVo> queryListByPage(SeparateAccountsSearchDto searchDto);

    /**
     * 根据id查询分账记录
     * 
     * @param id 主键id
     * @return SeparateAccounts
     */
    SeparateAccounts querySeparateAccounts(Long id);

    /**
     * 提交分账记录
     * 
     * @param separateAccountsDtos 分账记录
     * @return boolean
     */
    boolean submitSeparateAccounts(List<SubmitSeparateAccountsDto> separateAccountsDtos);

    /**
     * 根据id查询分账记录
     * 
     * @param id 主键id
     * @return SeparateAccountsSubmitVo
     */
    SeparateAccountsSubmitVo querySubmitSeparateAccounts(Long id);

    /**
     * 根据id查询分账记录
     * 
     * @param id 主键id
     * @return SeparateAccountsDetailVo
     */
    SeparateAccountsDetailVo querySeparateAccountsDetail(Long id);
}
