ref(sactorip): 重构地区查询接口并优化数据处理
- 修改地区查询接口返回类型为 List<CnAreaVo> - 新增 CnAreaVo 类用于树形结构展示 - 优化地区数据处理逻辑,构建树形结构并排序 - 更新前端地区选择接口 URLmaster
parent
e32f3663bf
commit
d7cc90be9d
|
@ -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() {
|
||||
|
|
|
@ -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<Cnarea> list = cnareaService.queryAll(cnarea);
|
||||
return AjaxResult.success(list);
|
||||
public List<CnAreaVo> listSelect(Cnarea cnarea) {
|
||||
List<CnAreaVo> list = cnareaService.listSelect(cnarea);
|
||||
return list.stream().sorted(Comparator.comparing(CnAreaVo::getN)).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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<CnAreaVo> listSelect(Cnarea cnarea);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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<CnAreaVo> listSelect(Cnarea cnarea) {
|
||||
// 查询所有数据
|
||||
List<Cnarea> list = cnareaMapper.queryAll(cnarea);
|
||||
|
||||
// 构建树形结构
|
||||
List<CnAreaVo> result = new ArrayList<>();
|
||||
Map<String, CnAreaVo> 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
* <pre> Copyright: Copyright(c) 2025 </pre>
|
||||
* <pre> Company : 紫光汇智信息技术有限公司 </pre>
|
||||
* 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<CnAreaVo> s;
|
||||
}
|
Loading…
Reference in New Issue