package com.kexue.skills.service; import com.github.pagehelper.PageInfo; import com.kexue.skills.entity.Account; import com.kexue.skills.entity.dto.AccountDto; import com.kexue.skills.entity.dto.TokenConsumptionDto; import java.math.BigDecimal; import java.util.List; /** * (Account)表服务接口 * * @author 王志维 * @since 2025-02-21 23:01:48 */ public interface AccountService extends BaseService { /** * 分页查询 * * @param queryDto 筛选条件 * @return 查询结果 */ PageInfo getPageList(AccountDto queryDto); /** * 查询列表 * * @param queryDto 筛选条件 * @return 查询结果 */ List getList(AccountDto queryDto); /** * 通过主键查询单条数据 * * @param accountId 主键 * @return 实例对象 */ Account queryById(Long accountId); /** * 通过用户ID查询账户 * * @param userId 用户ID * @return 实例对象 */ Account queryByUserId(Long userId); /** * 新增数据 * * @param account 实例对象 * @return 实例对象 */ Account insert(Account account); /** * 更新数据 * * @param account 实例对象 * @return 实例对象 */ Account update(Account account); /** * 增加账户余额 * * @param userId 用户ID * @param amount 增加金额 * @param isWithdrawable 是否可提现 * @param transactionNo 交易单号 * @param businessId 业务ID * @param businessType 业务类型 * @param remark 备注 * @return 影响行数 */ int addBalance(Long userId, BigDecimal amount, boolean isWithdrawable, String transactionNo, Long businessId, String businessType, String remark); /** * 增加账户余额(默认不可提现) * * @param userId 用户ID * @param amount 增加金额 * @param transactionNo 交易单号 * @param businessId 业务ID * @param businessType 业务类型 * @param remark 备注 * @return 影响行数 */ int addBalance(Long userId, BigDecimal amount, String transactionNo, Long businessId, String businessType, String remark); /** * 减少账户余额 * * @param userId 用户ID * @param amount 减少金额 * @param transactionNo 交易单号 * @param businessId 业务ID * @param businessType 业务类型 * @param remark 备注 * @return 影响行数 */ int reduceBalance(Long userId, BigDecimal amount, String transactionNo, Long businessId, String businessType, String remark); /** * 减少账户余额(token消费转换) * @param tokenConsumptionDto token消费 * */ int reduceBalanceWithToken(TokenConsumptionDto tokenConsumptionDto); /** * 增加账户余额(签到奖励token转换) * * @param userId 用户ID * @param amount 增加金额 * @param transactionNo 交易单号 * @param businessId 业务ID * @param businessType 业务类型 * @param remark 备注 * @return 影响行数 */ int addSignInBalance(Long userId, BigDecimal amount, String transactionNo, Long businessId, String businessType, String remark); /** * 给用户赠送金额(不可提现) * * @param userId 用户ID * @param amount 赠送金额 * @param transactionNo 交易单号 * @param businessId 业务ID * @param businessType 业务类型 * @param remark 备注 * @return 影响行数 */ int addGiftBalance(Long userId, BigDecimal amount, String transactionNo, Long businessId, String businessType, String remark); /** * 通过主键逻辑删除 * * @param accountId 主键 * @param updateBy 更新人 * @return 影响行数 */ int logicDeleteById(Long accountId, String updateBy); /** * 通过主键物理删除 * * @param accountId 主键 * @return 影响行数 */ int deleteById(Long accountId); /** * 获取用户交易记录 * * @param userId 用户ID * @return 交易记录列表 */ List getTransactions(Long userId); }