package com.sqx.modules.app.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sqx.common.utils.PageUtils;
import com.sqx.common.utils.Result;
import com.sqx.modules.app.entity.UserMoneyDetails;
import com.sqx.modules.exportExecl.dto.AccountEntry;
import com.sqx.modules.pay.controller.query.CashOutQueryDTO;
import com.sqx.modules.pay.controller.query.WalletDetailQuery;
import com.sqx.modules.utils.excel.ExcelData;

import java.math.BigDecimal;

public interface UserMoneyDetailsService extends IService<UserMoneyDetails> {
    Result queryUserMoneyDetails(Integer page, Integer limit, Long userId, Integer classify, Integer type);
    Double monthIncome(String date,Long userId);

    Result selectShopMoneyDetails(Integer page, Integer limit, Long shopId, Integer classify, Integer type);

    Result selectShopCashDeposit(Long shopId, Integer page, Integer limit, Integer classify);

    /**
     * 钱包明细列表
     * @param query
     * @return
     */
    PageUtils walletDetailList(WalletDetailQuery query);

    /**
     * 钱包明细统计
     * @param query
     * @return
     */
    BigDecimal walletDetailStatistics(WalletDetailQuery query);

    /**
     * 钱包明细导出
     * @param query
     * @return
     */
    ExcelData excelWalletDetails(WalletDetailQuery query);

    /**
     * 入账管理
     * @param page
     * @param limit
     * @param shopName
     * @param shopPhone
     * @param userPhone
     * @param couponName
     * @param orderNumber
     * @param startTime
     * @param endTime
     * @return
     */
    PageUtils accountEntryManagementDetails(Integer page, Integer limit, String shopName, String shopPhone, String userPhone, String couponName, String orderNumber, String startTime, String endTime,String flag);

    /**
     * 入账管理导出
     * @param query
     * @return
     */
    ExcelData excelAccountEntry(AccountEntry query);

    Result accountEntryAbnormal(AccountEntry accountEntry);
}
