package com.ssm.manage.service;

import com.github.pagehelper.PageInfo;
import com.ssm.core.service.BaseService;
import com.ssm.manage.entity.PayList;
import com.ssm.manage.entity.RepayList;
import com.ssm.manage.entity.SmsException;
import com.ssm.manage.extendEntity.StoreDaily;
import com.ssm.manage.query.RepayListRequest;
import com.ssm.manage.query.StoreDailyRequest;
import com.ssm.manage.response.RepayListResponse;
import com.ssm.manage.response.RepayTradeResponse;

import java.util.Date;
import java.util.List;

public interface SsmRepayService extends BaseService<RepayList> {
    PageInfo<RepayListResponse> selectPage(RepayListRequest repayListRequest);
    PageInfo<RepayListResponse> selectPageNew(RepayListRequest repayListRequest);
    PageInfo<RepayListResponse> pageDetail(RepayListRequest repayListRequest);

    int addRepay(RepayListRequest repayListRequest) throws SmsException;
    int addPromotionRecharge(RepayListRequest repayListRequest) throws SmsException;

    int updateStaff(RepayListRequest repayListRequest) throws SmsException;

    int cancel(RepayListRequest repayListRequest) throws SmsException;
    int cancelPromotionRecharge(RepayListRequest repayListRequest) throws SmsException;

    List<RepayTradeResponse> selectList(Long storeId, String date, String docType);
    List<RepayTradeResponse> selectListByStartTimeAndEndTime(Long storeId, Date startTime, Date endTime);
    List<RepayTradeResponse> selectListchia(Long storeId, Date startDate, Date endDate);
    List<RepayTradeResponse> selectListAbnormal(Long storeId, String date, String docType);
    List<RepayTradeResponse> selectLists(Long storeId, String startDate,String endDate, String docType) throws Exception;

    StoreDaily selectDayRecord(StoreDailyRequest storeDailyRequest);

    StoreDaily selectRepay(StoreDailyRequest storeDailyRequest);
    //还款类型单数
    StoreDaily selectRepayType(StoreDailyRequest storeDailyRequest);


    StoreDaily selectCashRechargeMoney(StoreDailyRequest storeDailyRequest);

    //查询现付收款类型
    List<PayList> selectTypeMoneys(StoreDailyRequest storeDailyRequest);

    List<RepayList> selectNew(RepayListRequest repayListRequest);

    PageInfo<RepayListResponse> selectPageNewByRepay(RepayListRequest repayListRequest);

    PageInfo<RepayListResponse> selectPageNewByCoursePay(RepayListRequest repayListRequest);
}
