package com.fzm.mall.server.admin.finance_center.service;

import com.fzm.mall.server.admin.finance_center.entity.dto.*;
import com.fzm.mall.server.admin.finance_center.entity.vo.BaseIntegralDetailVO;
import com.fzm.mall.server.admin.finance_center.model.PlatformIntegral;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * @author wangp
 * @date 2021/4/27 10:44
 * @description 服务类
 * @since JDK 1.8
 */
public interface IPlatformIntegralService extends IService<PlatformIntegral> {
    /**
     * 初始化平台通用积分
     *
     * @param integral 积分
     */
    void initBaseIntegral(PlatformIntegral integral);

    /**
     * 设置积分价格
     *
     * @param dto 积分价格信息
     */
    void setPlatFormIntegralPrice(SetIntegralPriceDTO dto);

    /**
     * 增发
     *
     * @param dto 增发信息
     */
    void addPlatFormIntegral(AddIssueDTO dto);

    /**
     * 平台基础积分转账-单个
     *
     * @param dto 转账信息
     */
    void platFormTransSingle(TransferAccountsDTO dto);

    /**
     * 平台基础积分转账-单个
     *
     * @param dto 转账信息
     */
    void platFormTransBatch(PlatformTransBatchDTO dto);

    /**
     * 根据币种查询积分详情
     *
     * @param label 积分标识
     * @return
     */
    PlatformIntegral queryByLabel(String label);

    /**
     * 回收平台基础积分
     *
     * @param dto 回收信息
     */
    void recoverPlatFormIntegral(RecoverDTO dto);

    /**
     * 回收平台基础积分
     */
    BaseIntegralDetailVO platformBaseIntegralDetail();

    /**
     * 数字资产列表
     */
    List<String> digitAssetsList();

    /**
     * 充值
     *
     * @param dto 用户资产充值或扣除
     */
    void recharge(UserAssetsChangeDTO dto);

    /**
     * 扣除
     *
     * @param dto 用户资产充值或扣除
     */
    void deduction(UserAssetsChangeDTO dto);

    PlatformIntegral queryByAddress(String address);
}
