package com.platform.dao;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.platform.entity.SysUserEntity;
import com.platform.entity.UserWindowDto;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 系统用户
 *
 * @author lipengjun
 * @email 939961241@qq.com
 * @date 2016年9月18日 上午9:34:11
 */
public interface SysUserDao extends BaseDao<SysUserEntity> {

    /**
     * 查询用户的所有权限
     *
     * @param userId 用户ID
     */
    List<String> queryAllPerms(Long userId);

    Long getUserNumOfDept(@Param("deptId") Long deptId);

    IPage<SysUserEntity> getBindList(IPage<SysUserEntity> page,
                                     @Param("ew") QueryWrapper<SysUserEntity> queryWrapper,
                                     @Param("brandId")long brandId);


    IPage<SysUserEntity> getCompanyUserList(IPage<SysUserEntity> page, @Param("ew") QueryWrapper<SysUserEntity> queryWrapper);

    /**
     * 查询用户的所有菜单ID
     */
    List<Long> queryAllMenuId(Long userId);

    /**
     * 根据用户名，查询系统用户
     */
    SysUserEntity queryByUserName(String username);

    SysUserEntity queryByUserMobile(String mobile);

    SysUserEntity queryByMobileAndDeptId(@Param("mobile") String mobile , @Param("deptId") long deptId);

    /**
     * 修改密码
     */
    int updatePassword(Map<String, Object> map);
    /**
     * 根据实体类查询
     * @param userWindowDto
     * @return
     */
    List<UserWindowDto> queryListByBean(UserWindowDto userWindowDto);

    List<SysUserEntity> getSysUserListByDeptIds(@Param("deptList") List<Long> deptList);
}
