package com.xinelu.manage.service.sysarea;


import com.xinelu.common.core.domain.AjaxResult;
import com.xinelu.manage.domain.sysarea.SysArea;
import com.xinelu.manage.vo.sysarea.ParentAreaVO;
import com.xinelu.manage.vo.sysarea.SysAreaVO;

import java.util.List;

/**
 * 区域Service接口
 *
 * @author jihan
 * @date 2022-09-02
 */
public interface ISysAreaService {
    /**
     * 查询区域
     *
     * @param id 区域主键
     * @return 区域
     */
    ParentAreaVO selectSysAreaById(Long id);

    /**
     * 查询区域列表
     *
     * @param sysArea 区域
     * @return 区域集合
     */
    List<SysArea> selectSysAreaList(SysArea sysArea);

    /**
     * 新增区域
     *
     * @param sysArea 区域
     * @return 结果
     */
    AjaxResult insertSysArea(SysArea sysArea);

    /**
     * 修改区域
     *
     * @param sysArea 区域
     * @return 结果
     */
    AjaxResult updateSysArea(SysArea sysArea);

    /**
     * 批量删除区域
     *
     * @param ids 需要删除的区域主键集合
     * @return 结果
     */
    public int deleteSysAreaByIds(Long[] ids);

    /**
     * 删除区域信息
     *
     * @param id 区域主键
     * @return 结果
     */
    public int deleteSysAreaById(Long id);


    /**
     * 下级区域寻找上级区域
     *
     * @param areaCode 区域编码
     * @return com.xinyilu.base.domain.vo.sysarea.SysAreaVO
     **/
    SysAreaVO getSubordinateRegionsFindSuperiorRegions(String areaCode);

    /**
     * 查询区域信息(不分页）
     *
     * @param sysArea 区域信息
     * @return AjaxResult
     */
    AjaxResult selectAreaList(SysArea sysArea);

    /**
     * 是否是偏远地区状态修改
     *
     * @param sysArea 区域信息
     * @return AjaxResult
     */
    AjaxResult updateRemoteSigns(SysArea sysArea);
}