package com.ruoyi.xq.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.xq.domain.AccountChangeLog;
import com.ruoyi.xq.domain.User;
import com.ruoyi.xq.dto.admin.log.AccountChangeLogAdminVo;
import com.ruoyi.xq.dto.admin.user.req.UpdateIncomeCoinReq;
import com.ruoyi.xq.dto.app.account.AccountDetailVo;
import com.ruoyi.xq.enums.user.AccountChangeCodeEnum;

import java.math.BigDecimal;

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

    void saveLogNoAdminOfConsumer(User user,AccountChangeCodeEnum accountChangeCodeEnum, BigDecimal price,String traceId, Long tarUserId);

    void saveLogNoAdmin(Long userId, AccountChangeCodeEnum accountChangeCodeEnum, BigDecimal withdrawPrice, String traceId);

    void saveLogAdminOfSystem(User user, AccountChangeCodeEnum accountChangeCodeEnum, UpdateIncomeCoinReq bo, LoginUser loginUser);

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

    Page<AccountDetailVo> pageApp(PageQuery pageQuery, Long userId);
}
