package com.ruoyi.bst.areaJoin.mapper;

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

import org.apache.ibatis.annotations.Param;

import com.ruoyi.bst.areaJoin.domain.AreaJoin;
import com.ruoyi.bst.areaJoin.domain.AreaJoinQuery;
import com.ruoyi.bst.areaJoin.domain.AreaJoinVO;

/**
 * 运营加盟Mapper接口
 *
 * @author ruoyi
 * @date 2025-03-25
 */
public interface AreaJoinMapper
{
    /**
     * 查询运营加盟
     *
     * @param id 运营加盟主键
     * @return 运营加盟
     */
    AreaJoinVO selectAreaJoinById(Long id);

    /**
     * 查询运营加盟列表
     *
     * @param query 运营加盟
     * @return 运营加盟集合
     */
    List<AreaJoinVO> selectAreaJoinList(@Param("query")AreaJoinQuery query);

    /**
     * 新增运营加盟
     *
     * @param areaJoin 运营加盟
     * @return 结果
     */
    int insertAreaJoin(AreaJoin areaJoin);
    
    /**
     * 修改运营加盟
     *
     * @param areaJoin 运营加盟
     * @return 结果
     */
    public int updateAreaJoin(@Param("data") AreaJoin areaJoin);

    /**
     * 删除运营加盟
     *
     * @param id 运营加盟主键
     * @return 结果
     */
    int deleteAreaJoinById(Long id);

    /**
     * 批量删除运营加盟
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteAreaJoinByIds(Long[] ids);

    /**
     * 查询ID列表
     * @param query
     * @return
     */
    List<Long> selectIdList(@Param("query") AreaJoinQuery query);

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

    /**
     * 查询数量
     * @param query
     * @return
     */
    int selectCount(@Param("query") AreaJoinQuery query);

    /**
     * 查询分成总和
     * @param query
     * @return
     */
    BigDecimal selectSumOfPoint(@Param("query") AreaJoinQuery query);
}
