diff --git a/ruoyi-admin/src/main/resources/templates/system/partner/add.html b/ruoyi-admin/src/main/resources/templates/system/partner/add.html index 13833198..165b3e5e 100644 --- a/ruoyi-admin/src/main/resources/templates/system/partner/add.html +++ b/ruoyi-admin/src/main/resources/templates/system/partner/add.html @@ -88,11 +88,13 @@ focusCleanup: true }); - var urlChina = '/demo/form/cityData'; + var urlChina = '/cnarea/select'; $.cxSelect.defaults.url = urlChina; + // $.cxSelect.defaults.jsonSpace = 'data'; $('#element1').cxSelect({ selects: ['province', 'city'], nodata: 'none' + }); function submitHandler() { diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/CnareaController.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/CnareaController.java index 1dac4d75..5bfb680c 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/CnareaController.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/CnareaController.java @@ -5,11 +5,14 @@ import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.sip.domain.Cnarea; import com.ruoyi.sip.service.ICnareaService; +import com.ruoyi.sip.vo.CnAreaVo; import org.springframework.web.bind.annotation.*; import org.springframework.beans.factory.annotation.Autowired; +import java.util.Comparator; import java.util.List; +import java.util.stream.Collectors; /** * @Author ch @@ -38,9 +41,9 @@ public class CnareaController extends BaseController { * @return */ @GetMapping("/select") - public AjaxResult listSelect(Cnarea cnarea) { - List list = cnareaService.queryAll(cnarea); - return AjaxResult.success(list); + public List listSelect(Cnarea cnarea) { + List list = cnareaService.listSelect(cnarea); + return list.stream().sorted(Comparator.comparing(CnAreaVo::getN)).collect(Collectors.toList()); } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/ICnareaService.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/ICnareaService.java index 624e9783..13602b9b 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/ICnareaService.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/ICnareaService.java @@ -1,6 +1,7 @@ package com.ruoyi.sip.service; import com.ruoyi.sip.domain.Cnarea; +import com.ruoyi.sip.vo.CnAreaVo; import java.util.List; @@ -42,6 +43,7 @@ public interface ICnareaService { */ int batchRemove(String[] ids); + List listSelect(Cnarea cnarea); } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/CnareaServiceImpl.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/CnareaServiceImpl.java index 0509eb64..acb15655 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/CnareaServiceImpl.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/CnareaServiceImpl.java @@ -4,10 +4,11 @@ import com.ruoyi.common.utils.CacheUtils; import com.ruoyi.sip.domain.Cnarea; import com.ruoyi.sip.mapper.CnareaMapper; import com.ruoyi.sip.service.ICnareaService; +import com.ruoyi.sip.vo.CnAreaVo; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.List; +import java.util.*; /** * @Author ch @@ -69,6 +70,52 @@ public class CnareaServiceImpl implements ICnareaService { return cnareaMapper.batchRemove(ids); } + @Override + public List listSelect(Cnarea cnarea) { + // 查询所有数据 + List list = cnareaMapper.queryAll(cnarea); + + // 构建树形结构 + List result = new ArrayList<>(); + Map map = new HashMap<>(); + + // 第一步:将所有数据转换为 CnAreaVo 并存入 Map + for (Cnarea item : list) { + CnAreaVo vo = new CnAreaVo(); + vo.setId(item.getId()); + vo.setN(item.getName()); + vo.setAreaCode(item.getAreaCode()); + vo.setParentCode(item.getParentCode()); +// vo.setShortName(item.getShortName()); +// vo.setMergerName(item.getMergerName()); +// vo.setPinyin(item.getPinyin()); +// vo.setLng(item.getLng()); +// vo.setLat(item.getLat()); + map.put(item.getAreaCode(), vo); + } + + // 第二步:构建树形结构 + for (CnAreaVo vo : map.values()) { + if (vo.getParentCode() == null || !map.containsKey(vo.getParentCode())) { + // 如果没有父节点或父节点不存在,则作为根节点 + result.add(vo); + } else { + // 找到父节点并添加到其子节点列表中 + CnAreaVo parent = map.get(vo.getParentCode()); + if (parent.getS() == null) { + parent.setS(new ArrayList<>()); + } + if ("2598".equals(vo.getId())){ + //重庆市数据单独处理 剔除 + continue; + } + parent.getS().add(vo); + } + } + + return result; + } + } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/vo/CnAreaVo.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/vo/CnAreaVo.java new file mode 100644 index 00000000..1a1b196d --- /dev/null +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/vo/CnAreaVo.java @@ -0,0 +1,28 @@ +package com.ruoyi.sip.vo; + + +import lombok.Data; + +import java.util.List; + +/** + * @author : ch + * @version : 1.0 + * @ClassName : CnAreaVo + * @Description : + * @DATE : Created in 11:10 2025/5/16 + *
       Copyright: Copyright(c) 2025     
+ *
       Company :   	紫光汇智信息技术有限公司		           
+ * Modification History: + * Date Author Version Discription + * -------------------------------------------------------------------------- + * 2025/05/16 ch 1.0 Why & What is modified: <修改原因描述> * + */ +@Data +public class CnAreaVo { + private String id; + private String n; + private String areaCode; + private String parentCode; + private List s; +}