package com.kxs.user.biz.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.kxs.user.api.dto.kxsapp.userAccount.UserAmountVariationListDTO;
import com.kxs.user.api.model.KxsUserAmountLog;
import com.kxs.user.api.vo.kxsapp.userAccount.*;

import java.util.List;

/**
 * 用户余额记录日志表(KxsUserAmountLog)表服务接口
 *
 * @author 系统
 * @since 2024-01-03 09:39:56
 */
public interface KxsUserAmountLogService extends IService<KxsUserAmountLog> {

    /**
     * 分页
     *
     * @param page  页
     * @param param 参数
     * @return {@link IPage}<{@link UserAmountVariationListVO}>
     */
    IPage<UserAmountVariationListVO> getByPage(Page<UserAmountVariationListVO> page, UserAmountVariationListDTO param);

    /**
     * 收益支出合计
     *
     * @param param 请求参数
     * @return {@link AmountInExpendTotalVO}

     */
    AmountInExpendTotalVO amountInExpendTotal(UserAmountVariationListDTO param);

    /**
     * 筛选类型列表
     *
     * @param kind 类
     * @return {@link Object}
     */
    List<VariationTypeListVO> variationTypeList(String kind);

    /**
     * 获取收益及支出类别明细
     *
     * @param changeTypeId 更改类型 ID
     * @return {@link Object}
     */
    List<VariationListVO> variationList(String changeTypeId);

    /**
     * 根据收支明细ID获取来源创客
     *
     * @param id 收支明细ID
     * @return {@link Object}
     */
    SourceUserVO sourceUser(Integer id, String tradeMonth);
}

