package com.ruoyi.bst.areaJoin.service;

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

import org.apache.ibatis.annotations.Param;

import com.ruoyi.bst.areaJoin.domain.AreaJoinQuery;
import com.ruoyi.bst.areaJoin.domain.vo.AreaJoinStatVO;

public interface AreaJoinDashboard {

    /**
     * 查询最大分成比例
     * @param query
     * @return
     */
    BigDecimal selectMaxOfPoint(AreaJoinQuery query);

    /**
     * 查询加盟商和合伙人数量
     * @param query
     * @param keys
     * @return
     */
    AreaJoinStatVO selectStat(AreaJoinQuery query, List<String> keys);

    /**
     * 查询分成总和
     */
    BigDecimal selectSumOfPoint(@Param("query") AreaJoinQuery query);
    
    /**
     * 查询剩余可分配金额
     * @param excludeId 排除ID
     * @param areaId 运营区ID
     * @param type 类型
     * @param totalPoint 总分成
     * @return
     */
    BigDecimal selectRemainPoint(Long excludeId, Long areaId, String type, BigDecimal totalPoint);

    /**
     * 查询运营区最大分成比例
     * 合伙人加算，加盟商取最大值
     * @param areaId 运营区ID
     * @return
     */
    BigDecimal selectMaxOfAreaPoint(Long areaId);

    /**
     * 查询运营区加盟商数量
     * @param query
     * @return
     */
    Integer selectCount(AreaJoinQuery query);

    /**
     * 查询运营区加盟商数量
     * @param query
     * @return
     */
    Integer selectJoinCount(AreaJoinQuery query);

    /**
     * 查询运营区合伙人数量
     * @param query
     * @return
     */
    Integer selectPartnerCount(AreaJoinQuery query);

    /**
     * 查询运营区运维数量
     * @param query
     * @return
     */
    Integer selectOperationCount(AreaJoinQuery query);
    
    
    
}
