package com.kxs.stat.biz.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.kxs.common.core.util.R;
import com.kxs.stat.api.dto.statUser.StatUserGetMyTradeDTO;
import com.kxs.stat.api.dto.statUser.StatUserGetTradeDetailDTO;
import com.kxs.stat.api.dto.statUser.StatUserGetUserStatByDayOrMonthDTO;
import com.kxs.stat.api.dto.statUser.StatUserGetUserTradeListDTO;
import com.kxs.stat.api.model.KxsUserTrade;

import java.math.BigDecimal;

/**
 * 个人交易统计总表(KxsUserTrade)表服务接口
 *
 * @author 系统
 * @since 2024-05-07 17:25:06
 */
public interface KxsUserTradeService extends IService<KxsUserTrade> {

    /**
     * 股东大盘分红积分计算任务
     */
    void getUserTradeList(String para);
    /**
     * 获取交易统计数据
     */
    BigDecimal getStatAmount(String month);
    /**
     * 用户详情-获取用户统计数据
     *
     * @param param 访问实体
     * @return 用户详情-获取用户统计数据
     */
    R getUserStatByDayOrMonth(StatUserGetUserStatByDayOrMonthDTO param);

    /**
     * 计奖交易-首页交易总额
     *
     * @return 计奖交易-首页交易总额
     */
    R getHomeAmount(Long userId);
    /**
     * 计奖交易-我的业绩
     *
     * @param param 查询实体
     * @return 计奖交易-我的业绩
     */
    R getMyTrade(StatUserGetMyTradeDTO param);

    /**
     * 计奖交易-交易统计页面
     * @param param
     * @return
     */
    R getUserTradeStatList(StatUserGetUserTradeListDTO param);

    /**
     * 获取交易统计数据
     *
     * @param param 参数
     * @return {@link R}
     */
    R getTradeDetail(StatUserGetTradeDetailDTO param);

    /**
     * 计奖交易趋势图
     *
     * @param totalType 总类型 0个人 1团队
     * @param type      类型 1近7日 2近半年
     * @return {@link R}
     */
    R getUserTrend(Integer totalType, Integer type);
}

