package cn.pluss.platform.user;

import cn.pluss.platform.entity.UserProfit;
import cn.pluss.platform.vo.UserAppVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.math.BigDecimal;
import java.util.List;

/**
 *
 * V2.0模式 创建用户分润
 * @author bzg
 * @since 2022-01-14
 */
public interface UserProfitService extends IService<UserProfit> {

    /**
     * 2.0分润计算
     * @date: 2022/1/25 22:54
     * @param date:
     */
    void createProfitV2(String date);

    /**
     * 计算代理流水是否到达进行升级
     * @date: 2022/1/25 22:55
     */
    void calcLevelTask();

    /**
     * 获取用户月团队流水
     * @date: 2022/1/25 23:01
     * @param profitMonth:
     * @return java.util.List<cn.pluss.platform.entity.UserProfit>
     */
    List<UserProfit> selectLevelFlow(String profitMonth);

    /**
     * 获取团队月流水
     * @param userId    用户id
     * @param month     月份 yyyy-MM
     * @return
     */
    BigDecimal getMonthTeamFlow(String userId, String month);

    /**
     * 获取分页下级数据
     * @param page      分页信息
     * @param userName  用户名称
     * @return
     */
    Page<UserAppVO> apiPageMonthSubTeamData(Page<UserAppVO> page, String userName);

    /**
     * 获取分页下级数据
     * @param page      分页信息
     * @param userName  用户名称
     * @return
     */
    Page<UserAppVO> pageMonthSubTeamData(Page<UserAppVO> page, String userId, String userName);

    /**
     * 分页查询
     * @date: 2022/3/11 15:54
     * @param page:
     * @param condition:
     * @return com.baomidou.mybatisplus.extension.plugins.pagination.Page<cn.pluss.platform.entity.UserProfit>
     */
    Page<UserProfit> pageData(Page<UserProfit> page, UserProfit condition);
}
