package com.ruoyi.cai.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.cai.domain.AccountChangeLog;
import com.ruoyi.cai.domain.Gift;
import com.ruoyi.cai.dto.app.vo.account.AccountDetailsAppVo;
import com.ruoyi.cai.enums.account.AccountChangeCodeEnum;
import com.ruoyi.common.core.domain.PageQuery;

import java.util.List;

/**
 * 账户明细Service接口
 *
 * @author 77
 * @date 2024-01-05
 */
public interface AccountChangeLogService extends IService<AccountChangeLog> {

    AccountChangeLog getLogNoAdmin(Long userId, String usercode, AccountChangeCodeEnum change, Long price, Long traceId);

    AccountChangeLog saveLogNoAdmin(Long userId, String usercode, AccountChangeCodeEnum change, Long price, Long traceId);

    AccountChangeLog saveLogNoAdmin(Long userId, String usercode, AccountChangeCodeEnum change, Long price, Long traceId
            , Long tarUserId);

    AccountChangeLog saveLogNoAdmin(Long userId, String usercode, AccountChangeCodeEnum change, Long price, Long traceId
            , Long tarUserId, Gift gift);

    AccountChangeLog saveLogAdmin(Long userId, String usercode, AccountChangeCodeEnum change, Long price, Long traceId);

    Page<AccountChangeLog> pageAdmin(PageQuery pageQuery, AccountChangeLog bo);

    List<AccountDetailsAppVo> pageApp(PageQuery query, Integer cateId, Long userId);
}
