package com.softwarebr.nunu.service.oper;

import com.brframework.commondb.core.EntityService;
import com.softwarebr.nunu.entity.oper.Area;
import com.softwarebr.nunu.json.AreaResult;

import java.util.List;

/**
 * @date: 2019-10-21 17:33:17
 * @author: lilin
 * @description: 省市区数据
 */

public interface AreaService extends EntityService<Area, Long, Object> {

    /**
     * 查询所有省份
     * @return
     */
    List<Area> findProvince();

    /**
     * 获取所有数据
     * @return
     */
    List<AreaResult> all();

    /**
     * 查找城市或区县
     * @param id
     * @return
     */
    List<Area> findCity(Long id);

    /**
     * 查询地址信息
     * @param parentId 父级ID  查省份时传0
     * @param cityName 城市名称
     * @return
     */
    Area findByParentIdAndCityName(Long parentId, String cityName);

    /**
     * 省市区地址拼接
     * @param provinceId 省级编号
     * @param cityId 市级编号
     * @param areaId 区县编号
     * @return
     */
    String addressSplicing(Long provinceId, Long cityId, Long areaId);

    /**
     * 省市区乡镇街道办地址拼接
     * @param provinceId 省级编号
     * @param cityId 市级编号
     * @param areaId 区县编号
     * @param streetId 乡镇编号
     * @return
     */
    String addressSplicing(Long provinceId, Long cityId, Long areaId, Long streetId);

}