package com.vctgo.system.service;

import java.util.List;

import com.vctgo.common.core.web.domain.AjaxResult;
import com.vctgo.system.api.domain.vo.SysTeachStaffVo;
import com.vctgo.system.domain.SysTeachStaff;
import com.baomidou.mybatisplus.core.metadata.IPage;

/**
 * 幼儿园教职工信息Service接口
 *
 * @author caesar
 * @date 2024-03-27
 */
public interface ISysTeachStaffService {
    /**
     * 查询幼儿园教职工信息
     *
     * @param userId 幼儿园教职工信息主键
     * @return 幼儿园教职工信息
     */
    SysTeachStaff selectSysTeachStaffById(String userId);

    /**
     * 查询幼儿园教职工信息列表-分页
     *
     * @param sysTeachStaff 幼儿园教职工信息
     * @return 幼儿园教职工信息集合
     */
    IPage<SysTeachStaff> selectSysTeachStaffPage(SysTeachStaff sysTeachStaff);

    /**
     * 查询幼儿园教职工信息列表
     *
     * @param sysTeachStaff 幼儿园教职工信息
     * @return 幼儿园教职工信息集合
     */
    List<SysTeachStaff> selectSysTeachStaffList(SysTeachStaff sysTeachStaff);

    /**
     * 新增幼儿园教职工信息
     *
     * @param sysTeachStaff 幼儿园教职工信息
     * @return 结果
     */
    int insertSysTeachStaff(SysTeachStaff sysTeachStaff);

    /**
     * 判断教职工信息
     *
     * @param userId
     * @return
     */
    AjaxResult checkSysTeachUserStatus(Long userId);

    /**
     * 修改幼儿园教职工信息
     *
     * @param sysTeachStaff 幼儿园教职工信息
     * @return 结果
     */
    int updateSysTeachStaff(SysTeachStaff sysTeachStaff);

    /**
     * 逻辑删除幼儿园教职工信息
     *
     * @param userId
     * @return 结果
     */
    int logicalDeleteSysTeachStaffByIds( Long userId);

    /**
     * 批量删除幼儿园教职工信息
     *
     * @param ids 需要删除的幼儿园教职工信息主键集合
     * @return 结果
     */
    int deleteSysTeachStaffByIds(Long[] ids);

    /**
     * 删除幼儿园教职工信息信息
     *
     * @param id 幼儿园教职工信息主键
     * @return 结果
     */
    int deleteSysTeachStaffById(Long id);

    /**
     * 通过岗位ID查询岗位使用数量
     *
     * @param postId 岗位ID
     * @return 结果
     */
    Long countUserPostById(Long postId);

    SysTeachStaffVo getLocationId(Long userId);


    int updateStaffByKinderId(SysTeachStaffVo sysTeachStaffVo);

}
