/**
 * Copyright 2018 人人开源 https://www.renren.io
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see .
 */
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.*;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.entity.CustomerStaffEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * 政府工作人员表
 *
 * @author generator generator@elink-cn.com
 * @since v1.0.0 2020-04-18
 */
@Mapper
public interface CustomerStaffDao extends BaseDao {
    /**
     * @param mobile
     * @return java.util.List
     * @Author yinzuomei
     * @Description 根据手机号查询工作人员信息
     * @Date 2020/4/20 13:17
     **/
    List selectListCustomerStaffDTO(String mobile);
    /**
     * @param formDTO
     * @return com.epmet.dto.CustomerStaffDTO
     * @Author yinzuomei
     * @Description 根据手机号+客户id获取工作人员基本信息
     * @Date 2020/4/20 14:08
     **/
    CustomerStaffDTO selectListCustomerStaffInfo(CustomerStaffFormDTO formDTO);
	CustomerStaffDTO selectStaffInfoByUserId(CustomerStaffDTO formDTO);
    /**
     * 根据userId查询网格下未被禁用的人员数量
     * @param userIdDTO
     * @return
     */
    GridStaffCountDTO selectGridStaffCountByUserId(List userIdDTO);
	/**
	 * 根据userId查询查询网格下的用户信息
	 *
	 * @param customerStaffGridDTOS
	 * @return
	 */
	List selectStaffGridListByUserId(List customerStaffGridDTOS);
	/**
	 * 根据用户ID列表获取用户信息
	 *
	 * @param fromDTO
	 * @return
	 */
	List selectCustomerStaffList(StaffsInAgencyFromDTO fromDTO);
    /**
     * @return com.epmet.entity.CustomerStaffEntity
     * @param userId
     * @Author yinzuomei
     * @Description 根据staffid查询用户基本信息
     * @Date 2020/4/23 16:46
     **/
    CustomerStaffEntity selectByUserId(String userId);
	/**
	 * 工作人员列表
	 *
	 * @param fromDTO
	 * @return
	 */
	List selectStaffList(StaffsInAgencyFromDTO fromDTO);
	/**
	 * 获取工作人员详情
	 * @param fromDTO
	 * @return
	 */
	CustomerStaffDTO selectStaffInfo(StaffInfoFromDTO fromDTO);
	/**
	 * @param fromDTO
	 * @return
	 * @Author sun
	 * @Description 根据客户Id及userId集合查询用户基本信息
	 */
    List selectDepartmentStaffList(DepartmentInStaffFormDTO fromDTO);
    /**
     * @Description  根据UserId列表查询用信息,过滤掉被禁用的,包含未激活的
     * @Param List
     * @return List
     * @Author wangc
     * @Date 2020.04.24 15:34
     **/
    List  selectEnableStaffMsg(@Param("userIds") List userIds,@Param("customerId")String customerId);
	/**
	 * @param staffIdList
	 * @return
	 * @Author sun
	 * @Description 根据staffId集合查询工作人员基础信息
	 **/
    List  selectStaffByIds(@Param("staffIdList") List staffIdList);
	/**
	 * @param staffId
	 * @return
	 * @Author sun
	 * @Description 根据staffId查询工作人员基本信息
	 **/
	CustomerStaffDTO selectByStaffId(@Param("staffId") String staffId);
	/**
	 * @param formDTO
	 * @return
	 * @Author sun
	 * @Description 根据客户ID、手机号查询政府端工作人员基本信息
	 **/
	List selectStaff(ThirdCustomerStaffFormDTO formDTO);
	/**
	 * @Description  查询工作人员的信息
	 * @param userIds
	 * @author zxc
	 * @date 2020/8/13 1:45 下午
	 */
	List getStaffInfoList(@Param("userIds")List userIds);
}