package com.community.huiju.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.community.commom.mode.ResponseBean;
import com.community.commom.session.UserElement;
import com.community.huiju.model.BillInvoice;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import java.util.List;

/**
 * <p>
 * 缴费单 服务类
 * </p>
 *
 * @author weiximei
 * @since 2019-02-13
 */
public interface IBillInvoiceService extends IService<BillInvoice> {


    /**
     * 根据条件查询 缴费项目
     * @param parameter
     * @return
     */
    ResponseBean getBillList(String parameter, UserElement userElement);

    /**
     * 批量删除 缴费单
     * @param ids
     * @param userElement
     * @return
     */
    ResponseBean deleteBillInvoice(List<Integer> ids, UserElement userElement);

    /**
     * 设置线下缴费
     * @param ids
     * @param userElement
     * @return
     */
    ResponseBean offlinePayment(List<Integer> ids, UserElement userElement);

    /**
     * 由前台批量添加收费单, 默认定为 作废
     * @param parameter
     * @param userElement
     * @return
     */
    ResponseBean addTempBillInvoice(String parameter, UserElement userElement);

    /**
     * 由前台批量添加收费单, 进行统一的提交, 修改为有效
     * @param ids
     * @param userElement
     * @return
     */
    ResponseBean updateBillInvoiceStatus(List<Integer> ids, UserElement userElement);

    /**
     * 查询由前台批量添加的收费单
     * @param billId
     * @param userElement
     * @return
     */
    ResponseBean getTempBillInvoice(Integer billId, UserElement userElement);

    /**
     * 根据id删除收费单, 只能删除作废的
     * @param billId
     * @param userElement
     * @return
     */
    ResponseBean deleteTempBillInvoice(Integer billId, UserElement userElement);

    /**
     * 根据缴费单id, 修改金额
     * @param billId
     * @param payPrice
     * @param userElement
     * @return
     */
    ResponseBean updateBillInvoiceIdPayPrice(Integer billId, Integer payPrice, UserElement userElement);

    /**
     * 导出Excel 表格
     *
     * @param userElement
     * @param billId
     * @return
     */
    ResponseBean exportExcel(UserElement userElement, Integer billId);

    /**
     * 根据 缴费项id 出现作废的数据
     * @param userElement
     * @param parameter
     * @return
     */
    ResponseBean getInvoiceInvalid(UserElement userElement, String parameter);
}
