package com.rj.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.rj.entity.LbDailyUserTrade;
import com.rj.entity.LbDailyUserTradeReport;

import java.time.LocalDate;
import java.util.Map;

/**
 * <p>
 * 当天用户交易报表 服务类
 * </p>
 */
public interface ILbDailyUserTradeReportService extends IService<LbDailyUserTradeReport> {
    Page<LbDailyUserTrade> pageDailyUserTradeByUserIdAndDateRange(
            LocalDate startDate, LocalDate endDate, String userId, Integer current, Integer size);
    Page<LbDailyUserTrade> pageDailyUserTradeByParentIdOfUserAndDateRange(
            LocalDate startDate, LocalDate endDate, String userId, Integer current, Integer size);

    Map<String, Object> calculateReportSumByDateAndTenant(LocalDate reportDate, String tenantId);

    /**
     * 按日期范围与租户统计每人四类金额（昨日买入、当日卖出、当日买入、差额）：本人汇总与递归下级汇总。
     * 用户范围由 lb_daily_user_trade_report 在条件内出现过的 user_id 圈定；上下级由 lb_department_user 确定。
     */
    Map<String, Object> listUserTradeAmountWithTeamByDateRangeAndTenant(
            LocalDate startDate, LocalDate endDate, String tenantId);
}
