城市列表数据(包括数据库)34个省份

1、建立城市数据表

CREATE TABLE `t_city` (
  `id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
  `city_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '城市名称',
  `city_code` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '城市编码',
  `parent_id` int DEFAULT NULL COMMENT '父级ID',
  `is_delete` int DEFAULT '0' COMMENT '是否删除0未删除1已删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=429 DEFAULT CHARSET=utf8mb3 COMMENT='城市表';

2、建立产品数据表(根据自己实际表来创建)

3、建立产品和城市关联

CREATE TABLE `t_city_product` (
  `id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
  `city_id` int DEFAULT NULL COMMENT '城市ID',
  `product_id` int DEFAULT NULL COMMENT '产品ID',
  `is_delete` int DEFAULT '0' COMMENT '是否删除 0未删除 1已删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb3 COMMENT='城市产品关联表';

4、查询城市菜单

  /**
     * 查询城市菜单
     * @return
     */
    @RequestMapping("findCityDataTree")
    @ResponseBody
    @ApiOperation(value = "查询城市菜单", notes = "查询城市菜单")
    public ResultUtil findCityDataTree() {
        try {
            List<TCity> cityList=tCityService.findCity();
            //封装数据
            List<CityManageTree> cityManageTreeList= CityManageTreeUtil.getCityManageTree(cityList);
            return ResultUtil.success(cityManageTreeList);
        } catch (Exception e) {
            return ResultUtil.error("查询失败!");
        }
    }

5、展示效果(以二叉树的形式展示)

 6、使用的封装工具、实体类

package com.yys.szcp.entityVo;

import com.yys.szcp.entity.TCity;

import java.util.ArrayList;
import java.util.List;

/**
 * Describe:
 * -------------------
 * User: yangyongsheng
 * Date: 2019/06/26 19:37:37
 * Email: 1095737364@qq.com
 */
public class CityManageTreeUtil {
    public static List<CityManageTree> getCityManageTree(List<TCity> cityManageList) {
        List<CityManageTree> cityManageTreeList = new ArrayList<>();
        for (int i = 0; i < cityManageList.size(); i++) {
            CityManageTree cityManageTree = new CityManageTree();
            TCity city = cityManageList.get(i);

            //判断是否存在父级, 如果没有, 则表示是一级菜单
            if (city.getParentId() == null || city.getParentId() == 0) {
                cityManageTree.setCityCode(city.getCityCode());
                cityManageTree.setId(city.getId());
                cityManageTree.setCityName(city.getCityName());
//                cityManageTree.setTitle(city.getCityName());
//                cityManageTree.setExpand(false);
                cityManageTree.setParentId(city.getParentId());
                cityManageTree.setChildren(getCityManageTreeChild(cityManageList, city.getId()));
                cityManageTreeList.add(cityManageTree);
            }
        }
        return cityManageTreeList;
    }

    private static List<CityManageTree> getCityManageTreeChild(List<TCity> cityManageList, Integer parentId) {
        List<CityManageTree> cityTreeManageList = new ArrayList<>();
        for (int i = 0; i < cityManageList.size(); i++) {
            CityManageTree cityManageTree = new CityManageTree();
            TCity city = cityManageList.get(i);
            if (city!=null&& city.getParentId()!=null && city.getParentId().equals(parentId)) {
                cityManageTree.setCityCode(city.getCityCode());
                cityManageTree.setId(city.getId());
                cityManageTree.setCityName(city.getCityName());
//                cityManageTree.setTitle(city.getCityName());
//                cityManageTree.setExpand(false);
                cityManageTree.setParentId(city.getParentId());
                cityManageTree.setChildren(getCityManageTreeChildThree(cityManageList, city.getId()));
                cityTreeManageList.add(cityManageTree);
            }
        }
        return cityTreeManageList;
    }

    private static List<CityManageTree> getCityManageTreeChildThree(List<TCity> cityManageList, Integer parentId) {
        List<CityManageTree> cityTreeManageList = new ArrayList<>();
        for (int i = 0; i < cityManageList.size(); i++) {
            CityManageTree cityManageTree = new CityManageTree();
            TCity city = cityManageList.get(i);
            if (city!=null&& city.getParentId()!=null && city.getParentId().equals(parentId)) {
                cityManageTree.setCityCode(city.getCityCode());
                cityManageTree.setId(city.getId());
                cityManageTree.setCityName(city.getCityName());
//                cityManageTree.setTitle(city.getCityName());
//                cityManageTree.setExpand(false);
                cityManageTree.setParentId(city.getParentId());
                cityTreeManageList.add(cityManageTree);
            }
        }
        return cityTreeManageList;
    }
}
@Data
public class CityManageTree implements Serializable {
    private static final long serialVersionUID = 1L;
    private Integer id;
    private Integer parentId;
    private String cityName;
    private String cityCode;
    private List<CityManageTree> children;

    public boolean isExpand() {
        return expand;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值