package com.yice.webadmin.app.dao;

import com.yice.common.core.base.dao.BaseDaoMapper;
import com.yice.webadmin.app.model.KnowledgeUser;
import com.yice.webadmin.upms.model.SysUser;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 知识库管理数据操作访问接口。
 *
 * @author linking
 * @date 2023-04-13
 */
public interface KnowledgeUserMapper extends BaseDaoMapper<KnowledgeUser> {

    /**
     * 批量插入对象列表。
     *
     * @param knowledgeUserList 新增对象列表。
     */
    void insertList(List<KnowledgeUser> knowledgeUserList);

    /**
     * 根据页面Id，获取关联的用户列表。
     *
     * @param knowledgeId   知识库ID。
     * @param sysUserFilter 用户过滤条件对象。
     * @param orderBy       order by从句的参数。
     * @return 和角色Id关联的用户列表。
     */
    List<SysUser> getSysUserListByKnowledgeId(
            @Param("knowledgeId") Long knowledgeId,
            @Param("sysUserFilter") SysUser sysUserFilter,
            @Param("orderBy") String orderBy);

    /**
     * 获取不属于指定知识库的用户列表。
     *
     * @param knowledgeId  知识库ID。
     * @param sysUserFilter 用户过滤条件对象。
     * @param orderBy order by从句的参数。
     * @return 和RoleId没有建立关联关系的用户列表。
     */
    List<SysUser> getNotInSysUserListByKnowledgeId(
            @Param("knowledgeId") Long knowledgeId,
            @Param("sysUserFilter") SysUser sysUserFilter,
            @Param("orderBy") String orderBy);

}
