package com.fs.qw.mapper;

import com.fs.qw.domain.QwAccount;
import com.fs.qw.domain.QwAccountAudit;
import com.fs.qw.domain.QwContact;
import com.fs.qw.vo.QwAccountListVO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 企微功能账号管理Mapper接口
 *
 * @author fs
 * @date 2023-08-23
 */

public interface QwContactMapper
{
    /**
     * 查询企微联系人
     *
     * @param id 企微联系人ID
     * @return 企微联系人
     */
    public QwContact selectQwContactById(Long id);

    /**
     * 查询企微联系人列表
     *
     * @param qwContact 企微联系人
     * @return 企微联系人集合
     */
    public List<QwContact> selectQwContactList(QwContact qwContact);

    /**
     * 新增企微联系人
     *
     * @param qwContact 企微联系人
     * @return 结果
     */
    public int insertQwContact(QwContact qwContact);

    /**
     * 修改企微联系人
     *
     * @param qwContact 企微联系人
     * @return 结果
     */
    public int updateQwContact(QwContact qwContact);

    /**
     * 删除企微联系人
     *
     * @param id 企微联系人ID
     * @return 结果
     */
    public int deleteQwContactById(Long id);

    /**
     * 批量删除企微联系人
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteQwContactByIds(Long[] ids);

    @Select("select user_id from qw_contact where device_id =#{deviceId}")
    List<Long> selectUserIdByDeviceId(String deviceId);

    @Select("select user_id from qw_contact where user_id =#{userId}")
    Long selectUserIdByUserId(Long userId);

    @Select("select * from qw_contact where user_id =#{userId} limit 1")
    QwContact selectQwContactByUserId(Long userId);

    @Select("select * from qw_contact where user_id =#{userId} and home_user_id =#{homeUserId}")
    QwContact selectQwContactByHomeUserId(@Param("userId") Long userId,@Param("homeUserId") String homeUserId);

    @Select("select * from qw_contact where home_user_id =#{homeUserId}")
    List<QwContact> selectQwContactsByHomeUserId(String homeUserId);

}
