package com.jiuqi.mobile.nigo.comeclose.manager.base;
import java.util.List;
import com.jiuqi.mobile.nigo.comeclose.bean.base.AdminAreaBean;
import com.jiuqi.mobile.nigo.comeclose.exception.NiGoException;
import com.jiuqi.mobile.nigo.comeclose.manager.ISimpleManger;
import com.jiuqi.mobile.nigo.comeclose.manager.ManagerAnnotation;
import com.jiuqi.mobile.nigo.comeclose.portal.PortalAnnotation;
import com.jiuqi.mobile.nigo.comeclose.portal.PortalMethodAnnctation;
/**
* 行政区划工具类
*
* @author modi
*
*/
@ManagerAnnotation(implClass = "com.jiuqi.mobile.nigo.biz.base.manager.AdminAreaManagerImpl")
@PortalAnnotation(implClass = "com.jiuqi.mobile.nigo.biz.portal.AdminAreaManagerPortalImpl")
public interface IAdminAreaManager extends ISimpleManger<AdminAreaBean> {
/**
* 获取行政区划根节点
*
* @return
*/
@PortalMethodAnnctation
AdminAreaBean getRootNode();
/**
* 根据行政区划code获得其直属子节点
*
* @param code
* @return
*/
@PortalMethodAnnctation
AdminAreaBean[] getClildNodes(long code);
/**
* 根据行政区划guid获得其直属子节点
*
* @param guid
* @return
*/
@PortalMethodAnnctation
AdminAreaBean[] getClildNodes(String guid);
/**
* 根据行政区划code获得当前节点
*
* @param code
* @return
*/
@PortalMethodAnnctation
AdminAreaBean findByCode(long code);
/**
* 根据行政区划guid获得当前节点
*
* @param guid
* @return
*/
AdminAreaBean find(String guid);
/**
* 通过行政区划名称,查询行政区划
*
* @param name
* @return
*/
AdminAreaBean[] findByName(String name);
/**
* 通过名称获得行政区划
*
* @param province
* @param city
* @param country
* @param town
* @param village
* @return
*/
AdminAreaBean findByName(String province, String city, String country,
String town, String village);
/**
* 根据行政区划级别,code获取最大code
*
* @param level
* @param code
* @return
*/
String maxCode(int level, long code);
/**
* 新建清除緩存
*/
@Override
public void create(AdminAreaBean bean) throws NiGoException;
/**
* 修改行政區劃后清除緩存
*
* @return
*/
@PortalMethodAnnctation
public int update(AdminAreaBean bean) throws NiGoException;
/**
* 刪除行政區劃后清除緩存
*
* @param bean
* @return
* @throws NiGoException
*/
public boolean delArea(AdminAreaBean bean) throws NiGoException;
/**
* 临时用于农机局导入(省市县)
*
* @param code
* @return
*/
@PortalMethodAnnctation
AdminAreaBean[] tempFind(int code);
/**
* 临时用于农机局导入(乡)
*
* @param code
* @return
*/
@PortalMethodAnnctation
AdminAreaBean[] tempFind1(String code);
/**
* 临时用于农机局导入(村)
*
* @param code
* @return
*/
@PortalMethodAnnctation
AdminAreaBean[] tempFind2(String code);
/**
* 获取所有没有经纬度的乡村和街道行政区划
*
* @Date 2014-7-3上午9:24:04
* @method getAllVillageAndTown
* @fileName IAdminAreaManager
* @package com.jiuqi.mobile.nigo.comeclose.manager.base
* @project comeclose
* @param provinceCode
* @return
* @return List<Long>
*/
@PortalMethodAnnctation
List<Long> getAllVillageAndTown(int provinceCode);
/**
* @Title: getAdminAreaBeanByAdminAreaAd
* @Description: 根据行政区划简称获取市级行政区划
* @param @param adminAreaAd 行政区划简称
* @param @return 设定文件
* @return AdminAreaBean 返回类型
* @throws
*/
@PortalMethodAnnctation
AdminAreaBean getAdminAreaBeanByAdminAreaAd(String adminAreaAd);
/**
*
* @方法描述: 获取没有经纬度的行政区划<br/>
* @项目名称:comeclose<br/>
* @类路径:com.jiuqi.mobile.nigo.comeclose.manager.base.IAdminAreaManager.java<br/>
* @版权所有(c):JOIN-CHEER <br/>
* @作者:xuzhe <br/>
* @创建时间:2015-4-21下午4:47:03 <br/>
* @修改时间:<br/>
* @修改备注: <br/>
* @返回类型:List<AdminAreaBean><br/>
* @return
*/
@PortalMethodAnnctation
List<AdminAreaBean> getAdminAreaBeanHasNoLatOrLon();
}