package com.ssm.manage.service;

import com.github.pagehelper.PageInfo;
import com.ssm.core.service.BaseService;
import com.ssm.manage.entity.RefundCash;
import com.ssm.manage.entity.RefundOrderList;
import com.ssm.manage.entity.SmsException;
import com.ssm.manage.extendEntity.RecDocList;
import com.ssm.manage.extendEntity.StoreDaily;
import com.ssm.manage.query.RefundOrderResquest;
import com.ssm.manage.query.RefundRechargeRequest;
import com.ssm.manage.query.StoreDailyRequest;
import com.ssm.manage.response.RefundDayVo;

import java.io.IOException;
import java.util.Date;
import java.util.List;

public interface SsmRefundOrderService extends BaseService<RefundOrderList> {
    PageInfo<RefundOrderList> selectPage(RefundOrderResquest refundOrderResquest);
    PageInfo<RefundOrderList> selectPageNew(RefundOrderResquest refundOrderResquest);
    PageInfo<RefundOrderList> memberPageNew(RefundOrderResquest refundOrderResquest);
    List<RefundOrderList> refundCourseCash(RefundOrderResquest refundOrderResquest);
    PageInfo<RefundOrderList> selectPageFd(RefundOrderResquest refundOrderResquest);
    PageInfo<RefundOrderList> pageDetail(RefundOrderResquest refundOrderResquest);
    List<RefundOrderList> selectFKJ(RefundOrderList refundOrderResquest);
    List<RefundOrderList> selectFKJByDate(RefundOrderList refundOrderResquest);

    int addRefundOrder(RefundOrderResquest refundOrderResquest) throws SmsException;

    int updateRefundOrder(RefundOrderResquest refundOrderResquest) throws SmsException, IOException;

    int sendAudit(RefundOrderResquest refundOrderResquest) throws SmsException;
    int revokeAudit(RefundOrderResquest refundOrderResquest) throws SmsException;

    int audit(RefundOrderResquest refundOrderResquest) throws SmsException;
    int delete(RefundOrderResquest refundOrderResquest) throws SmsException;

    int unAudit(RefundOrderResquest refundOrderResquest) throws SmsException;

    StoreDaily selectDayRecord(StoreDailyRequest storeDailyRequest);
    //新查询退款
    List<StoreDaily> selectRefund(StoreDailyRequest storeDailyRequest);

    List<RefundDayVo> selectByDay(List<Long> storeIds, Date startTime, Date endTime);

    List<RefundOrderList> selectNew(RefundOrderResquest refundOrderList1);

    PageInfo<RefundOrderList> refundByMemberId(RefundOrderResquest refundOrderResquest);
}
