package cn.iocoder.yudao.module.pay.service.wallet; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.pay.controller.admin.wallet.vo.transaction.PayWalletTransactionPageReqVO; import cn.iocoder.yudao.module.pay.controller.app.wallet.vo.transaction.AppPayWalletTransactionPageReqVO; import cn.iocoder.yudao.module.pay.controller.app.wallet.vo.transaction.AppPayWalletTransactionSummaryRespVO; import cn.iocoder.yudao.module.pay.dal.dataobject.wallet.PayWalletTransactionDO; import cn.iocoder.yudao.module.pay.enums.wallet.PayWalletBizTypeEnum; import cn.iocoder.yudao.module.pay.service.wallet.bo.WalletTransactionCreateReqBO; import jakarta.validation.Valid; import java.time.LocalDateTime; /** * 钱包余额流水 Service 接口 * * @author jason */ public interface PayWalletTransactionService { /** * 查询钱包余额流水分页 * * @param userId 用户编号 * @param userType 用户类型 * @param pageVO 分页查询参数 */ PageResult getWalletTransactionPage(Long userId, Integer userType, AppPayWalletTransactionPageReqVO pageVO); /** * 查询钱包余额流水分页 * * @param pageVO 分页查询参数 */ PageResult getWalletTransactionPage(PayWalletTransactionPageReqVO pageVO); /** * 新增钱包余额流水 * * @param bo 创建钱包流水 bo * @return 新建的钱包 do */ PayWalletTransactionDO createWalletTransaction(@Valid WalletTransactionCreateReqBO bo); /** * 根据 no,获取钱包余流水 * * @param no 流水号 */ PayWalletTransactionDO getWalletTransactionByNo(String no); /** * 获取钱包流水 * * @param bizId 业务编号 * @param type 业务类型 * @return 钱包流水 */ PayWalletTransactionDO getWalletTransaction(String bizId, PayWalletBizTypeEnum type); /** * 获得钱包流水统计 * * @param userId 用户编号 * @param userType 用户类型 * @param createTime 时间段 * @return 钱包流水统计 */ AppPayWalletTransactionSummaryRespVO getWalletTransactionSummary(Long userId, Integer userType, LocalDateTime[] createTime); }