package com.ruoyi.ss.risk.service;

import java.util.List;
import com.ruoyi.ss.risk.domain.Risk;
import com.ruoyi.ss.risk.domain.RiskVO;
import com.ruoyi.ss.risk.domain.RiskQuery;

/**
 * 风控Service接口
 *
 * @author ruoyi
 * @date 2024-10-18
 */
public interface RiskService
{
    /**
     * 查询风控
     *
     * @param riskId 风控主键
     * @return 风控
     */
    public RiskVO selectRiskByRiskId(Long riskId);

    /**
     * 查询风控列表
     *
     * @param risk 风控
     * @return 风控集合
     */
    public List<RiskVO> selectRiskList(RiskQuery risk);

    /**
     * 新增风控
     *
     * @param risk 风控
     * @return 结果
     */
    public int insertRisk(Risk risk);

    /**
     * 修改风控
     *
     * @param risk 风控
     * @return 结果
     */
    public int updateRisk(Risk risk);

    /**
     * 批量删除风控
     *
     * @param riskIds 需要删除的风控主键集合
     * @return 结果
     */
    public int deleteRiskByRiskIds(Long[] riskIds);

    /**
     * 删除风控信息
     *
     * @param riskId 风控主键
     * @return 结果
     */
    public int deleteRiskByRiskId(Long riskId);

    /**
     * 查询未结束的风控列表
     */
    List<RiskVO> selectNotFinishedList(RiskQuery query);

    /**
     * 批量设置实名认证ID
     */
    int batchSetRealName(List<Long> riskIds, Long realNameId);

    /**
     * 限制提现
     * @param userId 用户ID
     * @param reason 限制原因
     */
    int limitWithdraw(Long userId, String reason);

    /**
     * 结束封禁
     * @param riskId
     */
    int finish(Long riskId);
}
