当前位置: 首页 > news >正文

网站建设与管理就业方向珠海市香洲区建设局网站

网站建设与管理就业方向,珠海市香洲区建设局网站,湖南+网站建设,嵌入式软件开发技术在工作中要求写一个籍贯的级联选择器#xff0c;记录一下自己写这个级联选择器的过程#xff0c;因为自己才刚开始工作#xff0c;有很多地方都没有考虑的很清楚#xff0c;希望各位大佬能给出建议。 一、需求 A:正常的23个省#xff0c;籍贯由“省区/县/市”组成#xf… 在工作中要求写一个籍贯的级联选择器记录一下自己写这个级联选择器的过程因为自己才刚开始工作有很多地方都没有考虑的很清楚希望各位大佬能给出建议。 一、需求 A:正常的23个省籍贯由“省区/县/市”组成即写到县区一级比如浙江省温岭市、浙江省苍南县、安徽省阜南县、湖北省孝感市。不需要细化到“浙江省台州市温岭市”、“浙江省温州市苍南县” B:直辖市的籍贯写法由“直辖市区/县”组成比如北京市朝阳区、上海市杨浦区、重庆市南岸区 C :部分少数民族自治区的籍贯写法。 内蒙古自治区、新疆维吾尔自治区、宁夏回族自治区、广西壮族自治区、西藏自治区 部分少数民族自治区的籍贯由“自治区自治县/县/县级市”组成即写到县县一级例如内蒙古自治区包头市 二、实现方案 从省和市这种从属关系我打算给前端返回一个树省为最顶层因为直辖市和香港澳门特别行政区的关系把直辖市和香港澳门特别行政区也当做是树的根节点。因此数据库的设计就是要有一个当前区域代码和父区域代码来给树建立关系。 三、城市数据的获取 同事给了我这样一个文件Township_Area_A_20230425.xlsx这个文件包括了中国各个区域的代码可以到乡镇。这样的数据不方便我们形成树所以我把这个数据进行了整理。 这是我根据数据库的设计处理完的数据城市区域数据库导入文件.xlsx 这样处理可以大大减少数据存放的数据树的根节点parent_code为空。 四、数据库设计 最重要的是要能返回一个树形结构所以需要有一个parent_code字段根据type可以知道区域的类型。 CREATE TABLE t_city (id bigint unsigned NOT NULL AUTO_INCREMENT COMMENT id,code int DEFAULT NULL COMMENT 区域编码,name varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 区域名称,type int DEFAULT NULL COMMENT 区域类型类型,parent_code int DEFAULT NULL COMMENT 父区域编码,state tinyint DEFAULT NULL COMMENT 状态,created_by bigint DEFAULT NULL COMMENT 创建人,created_date datetime DEFAULT NULL COMMENT 创建时间,updated_by bigint DEFAULT NULL COMMENT 更新人,updated_date datetime DEFAULT NULL COMMENT 更新时间,PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT964 DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci;五、代码实现 获取树 public ListCommonTreeDTOCity getCityTree() {QueryWrapperCity queryWrapper new QueryWrapper();QueryWrapperCity wrapper queryWrapper.isNull(parent_code).orderByAsc(name);ListCity cities baseDao.selectList(wrapper);return buildTree(cities,null);} /*** 构建树* param parenList 父节点*/public ListCommonTreeDTOCity buildTree(ListCity parenList,Integer parentCode){ListCommonTreeDTOCity listnew ArrayList();parenList.forEach(city - {CommonTreeDTOCity dto new CommonTreeDTO();dto.setId(city.getId());dto.setKey(String.valueOf(city.getCode()));dto.setLabel(city.getName());dto.setLevel(city.getType());dto.setInfo(city);if (Objects.nonNull(parentCode)){dto.setPid((long)parentCode);}// 查询子节点QueryWrapperCity queryWrapper new QueryWrapper();ListCity childList baseDao.selectList(queryWrapper.eq(parent_code, city.getCode()));ListCommonTreeDTOCity childDTOListnew ArrayList();// 如果有子节点就继续递归查找if (CollectionUtils.isNotEmpty(childList)){childDTOList buildTree(childList,city.getCode());}if (CollectionUtils.isNotEmpty(childList)){dto.setChildren(childDTOList);}list.add(dto);});return list;}根据code查找区域名称 这里前端是会传入一个逗号分隔的字符串所以要对字符串进行处理然后再插叙出所有code对应的城市名称。 public String getCityByCode(String codes) {if (StringUtils.isNotBlank(codes)){String[] codeList codes.split(,);ListString cityNames new ArrayList();for (String code : codeList) {City city baseDao.selectOne(new QueryWrapperCity().eq(code, code));if (Objects.nonNull(city)){cityNames.add(city.getName());}}return String.join(, cityNames);}return ;}六、总结 因为当时做的时候比较赶做的比较粗糙很多地方都需要进行优化有时间要研究一下树。当时设计数据库的时候考虑了一下是用parent_id好呢还是parent_code,最终我还是选择用parent_code我想的是code是他们的关联关系这样设计查询的时候还要转换一下数据的格式增加了一些麻烦。
http://www.hkea.cn/news/14298678/

相关文章:

  • 私人承接做网站多少钱wordpress腾讯视频插件
  • 招聘网站哪个好用济南自助建站系统
  • 室内设计网站模板建设网站需要备案吗
  • 网站开发一般学多久自己做视频网站 在优酷推广
  • wordpress如何修改字体seo推广联系方式
  • 网站制作首选 新鸿儒南康网站建设
  • 加大门户网站安全制度建设公司网站字体
  • 广东门户网站建设请打开app
  • 找i满洲做卖房广告不收费的网站公司网站突然404
  • 在东莞建公司网站网站建设于朦胧
  • 好的做外贸的网站有哪些一级域名网站里有二级域名
  • 如何在各个购物网站之间做差价网站建设制作设计seo优化珠海
  • 网站设计制作哪种快网络推广的几种方式
  • 做企业网站需要收费吗找做防水去那个网站
  • 可以做旅行行程的网站网站模板下载工具
  • 电脑网站手机版怎么做广告设计公司网
  • 坪地网站建设包括哪些海洋生态文明建设的网站名
  • 网站备案号怎么做超链接局域网 手机网站建设
  • 湖南昌华建设集团网站宝安网站设计流程
  • 南京做网站建设有哪些内容wordpress邮件客户端
  • 佛山网站建设网络公司网站开发 程序开发原理
  • 搜索引擎网站推广法怎么做网络系统简介
  • 网站建站网站多少钱开发商
  • 防疫站24小时在线咨询wordpress仿百度文库
  • 做网站建设涉及哪些算法北京王府井百货大楼关闭
  • 报考大专网站肇庆wordpress转ty
  • 沈阳自助建站软件前端电商网站登录界面怎么做
  • dz网站收款即时到账怎么做的学做淘宝店的网站吗
  • js做网站登录作文网站网址大全
  • 什么网站做海宁的房产好wp网站系统模板