package com.ema.admin.modules.system.service;

import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;
import com.ema.admin.modules.system.entity.SysDepartment;
import com.ema.admin.modules.system.entity.SysUser;
import com.ema.admin.modules.system.vo.SysDepartmentQueryVo;
import com.ema.admin.modules.system.vo.SysDepartmentVo;

import java.util.List;

/**
 *  部门信息表 服务层。
 *
 * @author LIJIAN
 * @since 2026-05-12
 */
public interface SysDepartmentService extends IService<SysDepartment> {

    /**
     * 分页查询（带条件）。
     *
     * @param queryVo 查询条件
     * @return 分页对象
     */
    Page<SysDepartment> page(SysDepartmentQueryVo queryVo);

    /**
     * 获取部门树形结构。
     *
     * @return 部门树
     */
    List<SysDepartmentVo> tree();

    /**
     * 根据部门查询用户列表。
     *
     * @param departmentId 部门ID
     * @return 用户列表
     */
    List<SysUser> userList(String departmentId);

}
