package com.gic.haoban.manage.service.dao.mapper;

import com.gic.haoban.manage.api.dto.HandoverExternalDTO;
import com.gic.haoban.manage.api.dto.HandoverStaffFriendCountDTO;
import com.gic.haoban.manage.service.entity.TabHandoverExternal;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface HandoverExternalMapper {

    /**
     */
    int updateByPrimaryKeySelective(TabHandoverExternal record);

    /**
     */
    int insertBatch(@Param("list") List<TabHandoverExternal> list);

    /**
     * 查询待分配客户列表
     *
     * @param wxEnterpriseId
     * @param staffIds
     * @return
     */
    List<TabHandoverExternal> listByStaffIds(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("transferIds") List<String> transferIds, @Param("staffIds") List<String> staffIds, @Param("search") String search, @Param("status") Integer status);

    /**
     * 查询待分配客户列表
     *
     * @param wxEnterpriseId
     * @param staffIds
     * @return
     */
    List<String> listIdByStaffIds(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("staffIds") List<String> staffIds);

    /**
     * 查询待分配客户列表
     *
     * @param wxEnterpriseId
     * @return
     */
    List<TabHandoverExternal> listByIds(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("ids") List<String> ids);

    /**
     */
    int updateAfterTransfer(@Param("ids") List<String> ids, @Param("transferId") String transferId);

    /**
     * 查询待分配客户列表
     *
     * @param wxEnterpriseId
     * @return
     */
    TabHandoverExternal getByTransferId(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("transferId") String transferId, @Param("externalUserId") String externalUserId);

    /**
     * 查询待分配客户列表
     *
     * @param wxEnterpriseId
     * @return
     */
    TabHandoverExternal getByExternalUserIdAndStaffId(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("staffId") String staffId, @Param("externalUserId") String externalUserId);

    /**
     */
    int delNoTransferExternal(@Param("userIds") List<String> userIds, @Param("wxEnterpriseId") String wxEnterpriseId);


    /**
     * 查询待分配客户列表
     *
     * @param wxEnterpriseId
     * @return
     */
    List<HandoverStaffFriendCountDTO> listPreCountByStaffIds(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("staffIds") List<String> staffIds);

    List<TabHandoverExternal> listAllByStaffIds(@Param("wxEnterpriseId") String wxEnterpriseId,  @Param("staffIds") List<String> staffIds, @Param("search") String search, @Param("status") Integer status);
}