package com.ruoyi.group.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.group.domain.dto.CustGroupMemberQueryDTO;
import com.ruoyi.group.domain.entity.CustGroupMember;
import com.ruoyi.group.domain.vo.CustGroupMemberVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 客群客户关联Mapper接口
 *
 * @author ruoyi
 */
@Mapper
public interface CustGroupMemberMapper extends BaseMapper<CustGroupMember> {

    /**
     * 分页查询客群客户列表
     *
     * @param groupId 客群ID
     * @param dto 查询条件
     * @return 客户列表
     */
    List<CustGroupMemberVO> selectCustGroupMemberList(@Param("groupId") Long groupId,
                                                       @Param("dto") CustGroupMemberQueryDTO dto);

    /**
     * 批量插入客群客户（INSERT IGNORE，遇到重复键自动跳过）
     *
     * @param memberList 客户列表
     */
    void batchInsertMembers(@Param("list") List<CustGroupMember> memberList);

    /**
     * 批量查询个人客户是否存在（根据客户号+身份证号）
     *
     * @param custIds 客户号列表
     * @return 存在的客户号列表
     */
    List<String> selectExistingRetailCustIds(@Param("list") List<String> custIds);

    /**
     * 批量查询商户客户是否存在（根据客户号+统信码）
     *
     * @param custIds 客户号列表
     * @return 存在的客户号列表
     */
    List<String> selectExistingMerchantCustIds(@Param("list") List<String> custIds);

    /**
     * 批量查询企业客户是否存在（根据客户号+统信码）
     *
     * @param custIds 客户号列表
     * @return 存在的客户号列表
     */
    List<String> selectExistingBusinessCustIds(@Param("list") List<String> custIds);

}