package com.yonge.cooleshow.biz.dal.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yonge.cooleshow.biz.dal.dto.excel.UserWithdrawalExport;
import com.yonge.cooleshow.biz.dal.dto.req.WithdrawalReq;
import com.yonge.cooleshow.biz.dal.vo.UserWithdrawalVo;
import com.yonge.cooleshow.biz.dal.dto.search.TeacherWithdrawalSearch;
import com.yonge.cooleshow.biz.dal.entity.UserWithdrawal;
import com.yonge.cooleshow.biz.dal.vo.res.WithdrawalInfoRes;
import com.yonge.cooleshow.common.entity.HttpResponseResult;
import com.yonge.toolset.utils.easyexcel.ExcelDataReaderProperty;

import java.util.List;

/**
 * 用户账户提现表 服务类
 * @author liweifan
 * @date 2022-03-30
 */
public interface UserWithdrawalService extends IService<UserWithdrawal>  {

	/**
     * 查询详情
     * @author liweifan
 	 * @date 2022-03-30
     */
	UserWithdrawalVo detail(Long id);

    /**
     * 分页查询
     * @author liweifan
 	 * @date 2022-03-30
     */
    IPage<UserWithdrawalVo> selectPage(IPage<UserWithdrawalVo> page, TeacherWithdrawalSearch query);
    /***
     * 查询集合
     * @author liweifan
     * @param: query
     * @updateTime 2022/4/15 18:04
     * @return: java.util.List<com.yonge.cooleshow.biz.dal.vo.UserWithdrawalVo>
     */
	List<UserWithdrawalVo> selectList(TeacherWithdrawalSearch query);
	/***
	 * 查询提现页面信息
	 * @author liweifan
	 * @param: userId
	 * @updateTime 2022/4/7 14:31
	 * @return: com.yonge.cooleshow.common.entity.HttpResponseResult<com.yonge.cooleshow.biz.dal.vo.res.WithdrawalInfoRes>
	 */
    HttpResponseResult<WithdrawalInfoRes> getWithdrawalInfo(Long userId);
	/***
	 * 用户发起提现申请
	 * @author liweifan
	 * @param: userId
	 * @param: withdrawalReq
	 * @updateTime 2022/4/7 15:26
	 * @return: com.yonge.cooleshow.common.entity.HttpResponseResult<java.lang.Boolean>
	 */
	HttpResponseResult<Boolean> withdrawal(Long userId, WithdrawalReq withdrawalReq);

	/***
	 * 导入
	 * @author liweifan
	 * @param: dataList
	 * @updateTime 2022/4/20 9:45
	 * @return: com.yonge.cooleshow.common.entity.HttpResponseResult<java.util.List<com.yonge.toolset.utils.easyexcel.ErrMsg>>
	 */
    void importExcel(List<ExcelDataReaderProperty<UserWithdrawalExport>> dataList, Long userId);
}