package com.leromro.core.service;

import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.leromro.core.domain.ClientAccountChange;
import com.leromro.core.domain.vo.AccountChangeTotalMoney;
import com.leromro.core.domain.vo.ClientAccountChangeVO;

/**
 * 用户钱包余额变更记录Service接口
 * 
 * @author ruoyi
 * @date 2025-05-07
 */
public interface IClientAccountChangeService extends IService<ClientAccountChange>
{
    /**
     * 查询用户钱包余额变更记录
     * 
     * @param clientAccountChangeId 用户钱包余额变更记录主键
     * @return 用户钱包余额变更记录
     */
    public ClientAccountChange selectLClientAccountChangeByClientAccountChangeId(Long clientAccountChangeId);

    /**
     * 查询用户钱包余额变更记录列表
     * 
     * @param clientAccountChange 用户钱包余额变更记录
     * @return 用户钱包余额变更记录集合
     */
    public List<ClientAccountChange> selectLClientAccountChangeList(ClientAccountChange clientAccountChange);

    /**
     * 新增用户钱包余额变更记录
     * 
     * @param clientAccountChange 用户钱包余额变更记录
     * @return 结果
     */
    public Boolean insertLClientAccountChange(ClientAccountChange clientAccountChange);

    /**
     * 修改用户钱包余额变更记录
     * 
     * @param clientAccountChange 用户钱包余额变更记录
     * @return 结果
     */
    public Boolean updateLClientAccountChange(ClientAccountChange clientAccountChange);

    /**
     * 批量删除用户钱包余额变更记录
     * 
     * @param clientAccountChangeIds 需要删除的用户钱包余额变更记录主键集合
     * @return 结果
     */
    public int deleteLClientAccountChangeByClientAccountChangeIds(Long[] clientAccountChangeIds);

    /**
     * 删除用户钱包余额变更记录信息
     * 
     * @param clientAccountChangeId 用户钱包余额变更记录主键
     * @return 结果
     */
    public int deleteLClientAccountChangeByClientAccountChangeId(Long clientAccountChangeId);

    List<ClientAccountChangeVO> selectAccountChangeByuserId(ClientAccountChange clientAccountChange);

    AccountChangeTotalMoney selectTotalHistory(ClientAccountChange clientAccountChange);
}
