package com.yanzhu.system.service;

import java.util.List;

import com.yanzhu.system.domain.SysArea;
import com.yanzhu.system.domain.vo.TreeSelect;

/**
 * 地址管理Service接口
 * 
 * @author JiangYuQi
 * @date 2024-07-15
 */
public interface ISysAreaService 
{
    /**
     * 查询地址管理
     * 
     * @param id 地址管理主键
     * @return 地址管理
     */
    public SysArea selectSysAreaById(String id);

    /**
     * 查询地址管理列表
     * 
     * @param sysArea 地址管理
     * @return 地址管理集合
     */
    public List<SysArea> selectSysAreaList(SysArea sysArea);

    /**
     * 查询区域树结构信息
     *
     * @param area 区域信息
     * @return 区域树信息集合
     */
    public List<TreeSelect> selectAreaTreeList(SysArea area);

    /**
     * 构建前端所需要树结构
     *
     * @param areas 区域列表
     * @return 树结构列表
     */
    public List<SysArea> buildAreaTree(List<SysArea> areas);

    /**
     * 构建前端所需要下拉树结构
     *
     * @param areas 区域列表
     * @return 下拉树结构列表
     */
    public List<TreeSelect> buildAreaTreeSelect(List<SysArea> areas);

    /**
     * 加载参数缓存数据
     */
    public void loadingSysAreaCache();
    
    /**
     * 新增地址管理
     * 
     * @param sysArea 地址管理
     * @return 结果
     */
    public int insertSysArea(SysArea sysArea);

    /**
     * 修改地址管理
     * 
     * @param sysArea 地址管理
     * @return 结果
     */
    public int updateSysArea(SysArea sysArea);

    /**
     * 批量删除地址管理
     * 
     * @param ids 需要删除的地址管理主键集合
     * @return 结果
     */
    public int deleteSysAreaByIds(String[] ids);

    /**
     * 删除地址管理信息
     * 
     * @param id 地址管理主键
     * @return 结果
     */
    public int deleteSysAreaById(String id);
}
