package cn.pluss.platform.mapper;

import cn.pluss.platform.entity.UserApp;
import cn.pluss.platform.leshua.ExpandDto;
import cn.pluss.platform.vo.SpreadData;
import cn.pluss.platform.vo.UserTeamAchieVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;

/**
 * @author DJH
 */
public interface SpreadMapper {

    /**
     * 查询直推用户信息
     * @param condition 查询条件
     * @param page 分页参数
     * @return  result
     */
    Page<UserApp> selectDirectUser(@Param("condition") ExpandDto condition, Page<UserApp> page);

    /**
     * 查询普通服务商下的三级推广
     * @param condition 查询条件
     * @param page 分页参数
     * @return  result
     */
    Page<UserApp> selectPmtSubUser(@Param("condition") ExpandDto condition, Page<UserApp> page);

    /**
     * 查询超级服务商/代理商下的推广商户
     * @param condition 查询条件
     * @param page 分页参数
     * @return  result
     */
    Page<UserApp> selectAgentSubUser(@Param("condition") ExpandDto condition, Page<UserApp> page);

    /**
     * 查询团队交易数据
     * @date: 2022/1/24 14:55
     * @param page:
     * @param condition:
     * @return com.baomidou.mybatisplus.extension.plugins.pagination.Page<cn.pluss.platform.vo.UserTeamAchieVO>
     */
    Page<UserTeamAchieVO> userTemaAchiePage(Page<UserTeamAchieVO> page, @Param("condition") UserTeamAchieVO condition);

    /**
     * 获取当日推广数据
     * @param userId    用户id
     * @return
     */
    SpreadData selectTodaySpreadData(@Param("userId") String userId);

    /**
     * 获取历史推广数据
     * @param page      分页数据
     * @param userId    用户id
     * @return
     */
    Page<SpreadData> pageDaySpreadPageData(Page<SpreadData> page, @Param("userId") String userId);

    /**
     * 获取历史推广数据
     * @param page      分页数据
     * @param userId    用户id
     * @return
     */
    Page<SpreadData> pageMonthSpreadPageData(Page<SpreadData> page, @Param("userId") String userId);

    /**
     * 获取历史推广数据
     * @param page      分页数据
     * @param userId    用户id
     * @return
     */
    Page<SpreadData> pageYearSpreadPageData(Page<SpreadData> page, @Param("userId") String userId);

    /**
     * 获取历史推广数据
     * @param page      分页数据
     * @param userId    用户id
     * @return
     */
    Page<SpreadData> pageTeamDaySpreadPageData(Page<SpreadData> page, @Param("userId") String userId);

    /**
     * 获取历史推广数据
     * @param page      分页数据
     * @param userId    用户id
     * @return
     */
    Page<SpreadData> pageTeamMonthSpreadPageData(Page<SpreadData> page, @Param("userId") String userId);

    /**
     * 获取历史推广数据
     * @param page      分页数据
     * @param userId    用户id
     * @return
     */
    Page<SpreadData> pageTeamYearSpreadPageData(Page<SpreadData> page, @Param("userId") String userId);

    /**
     * 获取团队交易流水
     * @date: 2022/1/25 23:56
     * @param vo:
     * @return cn.pluss.platform.vo.UserTeamAchieVO
     */
    UserTeamAchieVO getAppUserTeanFlow(UserTeamAchieVO vo);
}
