package com.dcsoft.system.mapper;

import java.util.List;

import com.dcsoft.system.api.domain.SysUser;
import com.dcsoft.system.domain.SysPeople;
import com.dcsoft.system.domain.SysPeopleLeave;
import com.dcsoft.system.domain.vo.OfficialAccountVo;
import org.apache.ibatis.annotations.Param;

/**
 * 人员管理Mapper接口
 *
 * @author nichun
 * @date 2023-03-08
 */
public interface SysPeopleMapper
{
    /**
     * 查询人员管理
     *
     * @param id 人员管理主键
     * @return 人员管理
     */
    public SysPeople selectSysPeopleById(Long id);

    /**
     * 查询人员管理列表
     *
     * @param sysPeople 人员管理
     * @return 人员管理集合
     */
    public List<SysPeople> selectSysPeopleList(@Param("sysPeople") SysPeople sysPeople, @Param("list") List<String> list);

    /**
     * 新增人员管理
     *
     * @param sysPeople 人员管理
     * @return 结果
     */
    public int insertSysPeople(SysPeople sysPeople);

    /**
     * 修改人员管理
     *
     * @param sysPeople 人员管理
     * @return 结果
     */
    public int updateSysPeople(SysPeople sysPeople);

    /**
     * 删除人员管理
     *
     * @param id 人员管理主键
     * @return 结果
     */
    public int deleteSysPeopleById(Long id);

    /**
     * 批量删除人员管理
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSysPeopleByIds(Long[] ids);

    SysPeople selectByGuid(SysPeople sysPeople);


    SysPeople selectSysPeopleByUserId(Long userId);

    SysPeople selectSysPeopleByBranchUser(@Param("branchName") String branchName,@Param("userName") String userName);

    SysPeople selectSysPeopleByGh(String gh);

    SysPeople selectSysPeopleByPhoneUser(SysPeople sysPeople);

    List<SysPeople> queryPeopleInfo();

    List<SysPeople> queryPeople(List<String> collectStr);

    SysPeople queryPeopleDetails(String details);

    SysPeople selectSysPeopleByUserName(String userName);

    public int deleteSysPeopleByGuid(String guid);

    void updatePeople(SysPeople people);

    String selectDoorNo(Long id);

    String selectPeopleById(String card);

    void updatePeopleInfo(SysPeople sysPeople);

    OfficialAccountVo queryPeopleById(String id);

    SysPeople selectSysPeopleByOpenId(String openid);

    SysPeople selectSysPeopleGh(@Param("phone")String phone,@Param("userName") String userName);

    SysPeople queryPeopleName(@Param("phone") String phone, @Param("list") List<String> collect);

    SysPeople selectSysPeopleByDoorNo(String doorNo);

    SysPeople queryEmpowerRecord(String phone);

    SysPeople queryPeopleByOpenid(String openid);

    List<SysPeople> queryPeopleByPosition(String position);

    List<SysPeople> querySysPeopleInfo(Long userId);

    Long selectAppSysPeople(SysUser sysUser);

    List<SysPeople> selectSysPeopleListByIds(@Param("list") List<Long> list);
}
