package com.ssm.manage.service;

import com.github.pagehelper.PageInfo;
import com.ssm.core.service.BaseService;
import com.ssm.manage.entity.RechargeList;
import com.ssm.manage.entity.RefundOrderList;
import com.ssm.manage.entity.RefundRecharge;
import com.ssm.manage.entity.SmsException;
import com.ssm.manage.extendEntity.NegativeKazin;
import com.ssm.manage.extendEntity.RecDocList;
import com.ssm.manage.extendEntity.RechargeNegative;
import com.ssm.manage.query.AccountTradeRecordRequest;
import com.ssm.manage.query.RefundRechargeRequest;
import com.ssm.manage.query.StoreDailyRequest;
import com.ssm.manage.response.RefundRechargeResponse;

import java.math.BigDecimal;
import java.text.ParseException;
import java.util.Date;
import java.util.List;

public interface SsmRefundRechargeService extends BaseService<RefundRecharge> {
    PageInfo<RefundRechargeResponse> selectPage(RefundRechargeRequest refundRechargeRequest);

    int addRefundRecharge(RefundRechargeRequest refundRechargeRequest, RefundOrderList refundOrderList) throws SmsException;

    /**
     * 充值退
     * @param refundRechargeRequest
     * @param refundOrderList
     * @return
     * @throws SmsException
     */
    int NewaddRefundRecharge(RefundRechargeRequest refundRechargeRequest, RefundOrderList refundOrderList) throws SmsException;

    int updateRefundRecharge(RefundRechargeRequest refundRechargeRequest, RefundOrderList refundOrderList) throws SmsException;

    int audit(RefundOrderList refundOrderList)throws SmsException;

    int unAudit(RefundOrderList refundOrderList)throws SmsException;

    List<RecDocList> recDocList(RefundRechargeRequest refundRechargeRequest) throws SmsException, ParseException;

    List<RefundRechargeResponse> selectList(Long storeId, String date);
    List<RefundRechargeResponse> selectListDept(Long storeId, String date);
    List<RefundRechargeResponse> selectListchia(Long storeId, Date startDate, Date endDate);
    List<RefundRechargeResponse> selectLists(Long storeId, String startDate , String endDate);

    BigDecimal refundRechargeMoney(RefundRechargeRequest refundRechargeRequest) throws SmsException, ParseException;

    List<RefundRecharge> selectListNew(RefundRechargeRequest refundRechargeRequest);

    BigDecimal selectFKJByDate(StoreDailyRequest storeDailyRequest);


    BigDecimal selectFKJByRechargeOut(StoreDailyRequest storeDailyRequest);

    BigDecimal selectFKJByRechargeIn(StoreDailyRequest storeDailyRequest);
}
