package com.fs.company.mapper;

import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fs.company.domain.CompanyDomainBindUser;
import com.fs.company.param.CompanyDomainBindUserParam;
import com.fs.company.vo.CompanyDomainBindUserVo;
import org.apache.ibatis.annotations.Param;

/**
 * 企业域名分配中间表Mapper接口
 * 
 * @author fs
 * @date 2025-06-19
 */
public interface CompanyDomainBindUserMapper extends BaseMapper<CompanyDomainBindUser>{
    /**
     * 查询企业域名分配中间表
     * 
     * @param id 企业域名分配中间表主键
     * @return 企业域名分配中间表
     */
    CompanyDomainBindUser selectCompanyDomainBindUserById(Long id);

    /**
     * 查询企业域名分配中间表列表
     * 
     * @param companyDomainBindUser 企业域名分配中间表
     * @return 企业域名分配中间表集合
     */
    List<CompanyDomainBindUserVo> selectCompanyDomainBindUserList(CompanyDomainBindUserParam companyDomainBindUser);

    /**
     * 新增企业域名分配中间表
     * 
     * @param companyDomainBindUser 企业域名分配中间表
     * @return 结果
     */
    int insertCompanyDomainBindUser(CompanyDomainBindUser companyDomainBindUser);

    /**
     * 修改企业域名分配中间表
     * 
     * @param companyDomainBindUser 企业域名分配中间表
     * @return 结果
     */
    int updateCompanyDomainBindUser(CompanyDomainBindUser companyDomainBindUser);

    /**
     * 删除企业域名分配中间表
     * 
     * @param id 企业域名分配中间表主键
     * @return 结果
     */
    int deleteCompanyDomainBindUserById(Long id);

    /**
     * 批量删除企业域名分配中间表
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    int deleteCompanyDomainBindUserByIds(Long[] ids);

    /**
     * 批量插入
     * @param bindUserList 插入对象
     * **/
    void batchInsertBindUserInfo(@Param("bindUserList") List<CompanyDomainBindUser> bindUserList);

    /**
     * 批量查询用户分配域名中间表接口
     * **/
    List<CompanyDomainBindUserVo> selectDoaminBindUserJoinInfo(CompanyDomainBindUserParam companyDomainBindUser);
}
