package com.limap.core.basic.service;

import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.extension.service.IService;
import com.limap.common.core.domain.AjaxResult;
import com.limap.core.basic.domain.AquPayDevice;
import com.limap.core.basic.domain.AquPayOrder;
import com.limap.core.basic.domain.BasicProfitSharingRecord;
import com.limap.core.basic.domain.BasicUserBindInfo;
import com.limap.core.basic.vo.BasicUserWithdrawVo;
import com.limap.core.basic.vo.SharingRecordSearchVo;
import com.limap.core.basic.vo.SharingUserTaskVo;

/**
 * 分润记录Service接口
 *
 * @author jjb
 * @date 2025-04-11
 */
public interface IBasicProfitSharingRecordService extends IService<BasicProfitSharingRecord> {
    /**
     * 查询分润记录列表
     *
     * @param basicProfitSharingRecord 分润记录
     * @return 分润记录集合
     */
    public List<BasicProfitSharingRecord> selectBasicProfitSharingRecordList(BasicProfitSharingRecord basicProfitSharingRecord);

    /**
     * 处理分润计算
     * @param aquPayOrder
     * @param basicUserBindInfo
     * @param sharingUserTaskVo
     * @return
     */
    BasicProfitSharingRecord calculateProfit(AquPayDevice aquPayOrder, SharingUserTaskVo sharingUserTaskVo);

    Map<String, Object> getReportData(SharingRecordSearchVo searchVo);

    List<BasicProfitSharingRecord> selectRecordByWithdraw(BasicUserWithdrawVo basicUserWithdraw);

    void updateRecordByWithdraw(BasicUserWithdrawVo basicUserWithdraw);

    AjaxResult dealRefund(BasicProfitSharingRecord basicProfitSharingRecord);
}
