package com.njcn.system.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.system.pojo.dto.AreaTreeDTO;
import com.njcn.system.pojo.po.Area;
import com.njcn.system.pojo.vo.AreaTreeVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author hongawen
 * @since 2021-12-13
 */
public interface AreaMapper extends BaseMapper<Area> {

    /**
     *
     * @return 行政区域树（首次）
     */
    List<AreaTreeVO> getAreaTree(@Param("id")String id,@Param("type") Integer type,@Param("state")Integer state);

    /**
     *
     * @return 行政区域树（首次）
     */
    List<AreaTreeVO> getAreaIdTree(@Param("type") Integer type,@Param("state")Integer state);

    /**
     * 查询父节点的所有上层节点
     * @param id
     * @return 父节点的所有上层节点
     */
    String getIdString(@Param("id")String id);

    /**
     *
     * @param ids id
     * @param state 状态
     * @return 返回的结果
     */
    List<Area> selectPid(@Param("ids")List<String> ids,@Param("state")Integer state);


    /**
     *
     * @return 行政区域树（首次）
     */
    List<AreaTreeDTO> getAreaDeptTree(@Param("id")String id,@Param("type") Integer type, @Param("state")Integer state);

    /**
     * 查询所有区域
     * @return 结果
     */
    List<AreaTreeVO> getAreaAll();

    /**
     * 根据部门id获取区域详情
     * @param id 部门id
     * @return 结果
     */
    Area areaDeptProDetail(@Param("id")String id);

}
