省市区三级联动显示

省市区三级联动,数据库根据id规律存储,得到以下形式的数据

{
“list”: {
“first”: [
{
“id”: “110000”,
“name”: “北京”,
“ssqename”: “”,
“second”: [
{
“id”: “110100”,
“name”: “市辖区”,
“ssqename”: “”,
“third”: [
{
“id”: “110229”,
“name”: “延庆县”,
“ssqename”: “”
}
]
}
]
},
{
“id”: “120000”,
“name”: “天津”,
“ssqename”: “”,
“second”: [
{
“id”: “120100”,
“name”: “市辖区”,
“ssqename”: “”,
“third”: [
{
“id”: “120101”,
“name”: “和平区”,
“ssqename”: “”
}

后台代码

/**
 * @Title: datalistPage
 * @Description: TODO(查询省市区信息,参数传递 地区id:area_id 成功返回:0000 失败返回:1111)
 * @param @return    设定文件
 * @return Object    返回类型
 * @throws
 */
@RequestMapping(value = "/areainfolist")
@ResponseBody
public Object areaInfoList(){
    PageData pd = new PageData();
    pd = this.getPageData();
    Map<String,Object> map = new HashMap<String,Object>();
    String retCode = "0000";//默认 请求成功
    String retMsg = "success";
    try {
        List<PageData> list = new ArrayList<>();
        List<PageData> provinceList = areaInfoService.provinceList(pd);
        PageData fpd = new PageData();
        List<PageData> lists = new ArrayList<>();
        for (PageData province : provinceList) {
            if (province.getString("id").length() == 6){
                lists.add(province);
            }
        }
        fpd.put("first",lists);
        list.add(fpd);
        if (lists != null && lists.size()>0){
            for (PageData pageData : lists) {
                List<PageData> cityList = areaInfoService.cityList(pageData);
                pageData.put("second",cityList);
                if (cityList != null && cityList.size() > 0){
                    for (PageData city : cityList) {
                        List<PageData> region = areaInfoService.regionList(city);
                        city.put("third", region);
                    }
                }
            }
            map.put("list",list);
        }
    } catch (Exception e) {
        logger.error(e.toString(), e);
        retCode = "1111";//请求失败
        retMsg = "fail";    //请求失败
    }finally{
        map.put("retCode", retCode);//请求成功
        map.put("retMsg", retMsg);
    }
    return map;
}
}

sql

<!--查询省列表-->
<select id="provinceList" parameterType="pd" resultType="pd">
	select
		area_id AS id,
		area_name AS name
	from area_info
	where 1=1
</select>

<!--查询省对应的市列表-->
<select id="cityList" parameterType="pd" resultType="pd">
	select
		area_id AS id,
		area_name AS name
	from area_info
	where 1=1
	and area_id like concat(#{id},'%') and LENGTH(area_id) = 10
</select>

<!--查询市对应的区列表-->
<select id="regionList" parameterType="pd" resultType="pd">
	select
		area_id AS id,
		area_name AS name
	from area_info
	where 1=1
	and area_id like concat(#{id},'%') and LENGTH(area_id) = 15
</select>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值