package com.goafanti.common.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.goafanti.admin.bo.AdminContacts;
import com.goafanti.admin.bo.AdminListBo;
import com.goafanti.admin.bo.AppAdminListBo;
import com.goafanti.common.model.Admin;
import com.goafanti.common.model.Role;
import com.goafanti.core.mybatis.page.Pagination;
import com.goafanti.common.model.AdminExample;

public interface AdminMapper {
    /**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table admin
	 * @mbg.generated  Fri Jun 22 14:12:55 CST 2018
	 */
	long countByExample(AdminExample example);

	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table admin
	 * @mbg.generated  Fri Jun 22 14:12:55 CST 2018
	 */
	int deleteByExample(AdminExample example);

	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table admin
	 * @mbg.generated  Fri Jun 22 14:12:55 CST 2018
	 */
	int deleteByPrimaryKey(String id);

	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table admin
	 * @mbg.generated  Fri Jun 22 14:12:55 CST 2018
	 */
	int insert(Admin record);

	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table admin
	 * @mbg.generated  Fri Jun 22 14:12:55 CST 2018
	 */
	int insertSelective(Admin record);

	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table admin
	 * @mbg.generated  Fri Jun 22 14:12:55 CST 2018
	 */
	List<Admin> selectByExample(AdminExample example);

	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table admin
	 * @mbg.generated  Fri Jun 22 14:12:55 CST 2018
	 */
	Admin selectByPrimaryKey(String id);

	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table admin
	 * @mbg.generated  Fri Jun 22 14:12:55 CST 2018
	 */
	int updateByExampleSelective(@Param("record") Admin record, @Param("example") AdminExample example);

	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table admin
	 * @mbg.generated  Fri Jun 22 14:12:55 CST 2018
	 */
	int updateByExample(@Param("record") Admin record, @Param("example") AdminExample example);

	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table admin
	 * @mbg.generated  Fri Jun 22 14:12:55 CST 2018
	 */
	int updateByPrimaryKeySelective(Admin record);

	/**
	 * This method was generated by MyBatis Generator. This method corresponds to the database table admin
	 * @mbg.generated  Fri Jun 22 14:12:55 CST 2018
	 */
	int updateByPrimaryKey(Admin record);

	Admin selectByMobile(String mobile);

	List<Role> selectRolesByPrimaryKey(String uid);

	List<Admin> selectCognizanceConsultant();
	
	List<Admin> selectCognizancePrincipal();

	List<Admin> selectPatentAuthor();

	List<Admin> selectPatentPrincipal();

	List<Admin> selectCopyrightConsultant();

	List<Admin> selectCopyrightPrincipal();

	List<Admin> selectTechprojectConsultant();

	List<Admin> selectTechprojectPrincipal();

	List<String> selectRoleByPrimaryKey(String uid);

	List<Admin> selectAccoutManager();

	List<Admin> selectTechnician();

	List<Admin> selectSalesman();

	List<Admin> selectContractManager();

	List<Admin> selectTechBroder();

	List<Admin> listAdminSelectBySuperAdmin();

	List<Admin> listAdminSelectByAreaAdmin(@Param("provinceList")List<Integer> provinceList, @Param("cityList")List<Integer> cityList);
	
	List<Admin> listAdminByName(@Param("name")String name);
	
	
	int insertn(Admin record);
	
	String selectUserNoBySuperiorId(String superiorId);
	
	int selectCountBySuperiorId(String superiorId);
	
	String selectIdByUserNo(String userNo);
	
	Admin selectAllByid(String id);
	
	String selectNameByid(String id);
	
	List<String>selectRolesByUid(String id);
	
	List<String>selectRolesIdByUid(String id);
	
	String selectStatusByMobile(@Param("mobile")String mobile);
	
	int deleteById(String id);

	Pagination<AppAdminListBo> consultantList();
	
	List<Admin> selectIDNBySuperiorId(String superiorId);
	
	String selectUserNoById(String superiorId);
	
	int updateByUserNo(Admin record);
	
	List<String>selectIdBySuperiorId(String superiorId);
	
	/**
	 * 查询下级人员
	 * @param adminId
	 * @return
	 */
	List<AdminListBo> selectSubList(@Param("adminId")String adminId);
	
	/**
	 * 查询订单变更信息通知�??
	 * @param orderNo
	 * @return
	 */
	Admin selectAdminByRoleId(@Param("roleId")String roleId);
	/**
	 * 查询部门下的员工
	 * @param departmentId
	 * @param name
	 * @return
	 */
	List<AdminListBo> selectDepartmentStaff(String departmentId, String name);
	
	Admin selectAdminName(@Param("name")String name);

	List<Admin> selectAllAdmin(@Param("depId")String depId);

	int updateLockIds(@Param("lockIds")String lockIds);

	List<AdminListBo> getListDefaultPassword(String id);

	int getCountById(String id);
	AdminListBo getDeptNameByAid(String id);

	List<Admin> getAdminRoleList(String roleName);

	int addAdminContacts(AdminContacts a);

	int deleteFrequentContacts(String id);

	List<String> getaidFrequentContacts(String id);

	List<String> listNameByDepAndName(@Param("depId")String depId,@Param("roleName")String roleName);

	List<String> selectBySuperId(String aid);

	Admin selectFinanceAdminByOrderDep(String orderDep);

	String getPermission(String transferId);

	List<String> selectDepIdWithSpuerId(String superId);

	void getAllDep();
	
}
