package com.fs.company.mapper;

import com.fs.company.domain.CompanyPost;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * 岗位信息Mapper接口
 *
 * @author fs
 * @date 2021-05-25
 */
public interface CompanyPostMapper
{
    /**
     * 查询岗位信息
     *
     * @param postId 岗位信息ID
     * @return 岗位信息
     */
    public CompanyPost selectCompanyPostById(Long postId);

    /**
     * 查询岗位信息列表
     *
     * @param companyPost 岗位信息
     * @return 岗位信息集合
     */
    public List<CompanyPost> selectCompanyPostList(CompanyPost companyPost);

    /**
     * 新增岗位信息
     *
     * @param companyPost 岗位信息
     * @return 结果
     */
    public int insertCompanyPost(CompanyPost companyPost);

    /**
     * 修改岗位信息
     *
     * @param companyPost 岗位信息
     * @return 结果
     */
    public int updateCompanyPost(CompanyPost companyPost);

    /**
     * 删除岗位信息
     *
     * @param postId 岗位信息ID
     * @return 结果
     */
    public int deleteCompanyPostById(Long postId);

    /**
     * 批量删除岗位信息
     *
     * @param postIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteCompanyPostByIds(Long[] postIds);

    List<CompanyPost> selectPostsByUserName(String username);

    @Select("select count(1) from company_post where post_code=#{postCode} and company_id=#{companyId}")
    int checkPostCodeUnique(@Param("companyId") Long companyId, @Param("postCode")String postCode);

    List<Integer> selectPostListByUserId(Long userId);

    @Select("select p.post_name from company_user_post up left join company_post p on p.post_id=up.post_id where up.user_id=#{userId}  ")
    List<String> selectPostNameListByUserId(Long userId);

    @Select("select p.post_id, p.post_name from company_user_post up inner join company_post p on p.post_id=up.post_id where up.user_id = #{userId}")
    List<CompanyPost> selectCompanyPostByUserId(@Param("userId") Long userId);


    /**
     * 根据ID集合查询岗位列表
     * @param postIds   id集合
     * @return  list
     */
    List<CompanyPost> selectCompanyPostByIds(@Param("postIds") List<Long> postIds);


    /**
     * 获取默认岗位
     * @param postCode 岗位编码
     * @return 信息
     * **/
    CompanyPost selectCompanyPostCode(@Param("postCode") String postCode,@Param("companyId") Long companyId);

}
