ref(sactorip): 重构地区查询接口并优化数据处理
- 修改地区查询接口返回类型为 List<CnAreaVo> - 新增 CnAreaVo 类用于树形结构展示 - 优化地区数据处理逻辑,构建树形结构并排序 - 更新前端地区选择接口 URLmaster
parent
e32f3663bf
commit
d7cc90be9d
|
@ -88,11 +88,13 @@
|
||||||
focusCleanup: true
|
focusCleanup: true
|
||||||
});
|
});
|
||||||
|
|
||||||
var urlChina = '/demo/form/cityData';
|
var urlChina = '/cnarea/select';
|
||||||
$.cxSelect.defaults.url = urlChina;
|
$.cxSelect.defaults.url = urlChina;
|
||||||
|
// $.cxSelect.defaults.jsonSpace = 'data';
|
||||||
$('#element1').cxSelect({
|
$('#element1').cxSelect({
|
||||||
selects: ['province', 'city'],
|
selects: ['province', 'city'],
|
||||||
nodata: 'none'
|
nodata: 'none'
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
function submitHandler() {
|
function submitHandler() {
|
||||||
|
|
|
@ -5,11 +5,14 @@ import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
import com.ruoyi.sip.domain.Cnarea;
|
import com.ruoyi.sip.domain.Cnarea;
|
||||||
import com.ruoyi.sip.service.ICnareaService;
|
import com.ruoyi.sip.service.ICnareaService;
|
||||||
|
import com.ruoyi.sip.vo.CnAreaVo;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
||||||
|
import java.util.Comparator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author ch
|
* @Author ch
|
||||||
|
@ -38,9 +41,9 @@ public class CnareaController extends BaseController {
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@GetMapping("/select")
|
@GetMapping("/select")
|
||||||
public AjaxResult listSelect(Cnarea cnarea) {
|
public List<CnAreaVo> listSelect(Cnarea cnarea) {
|
||||||
List<Cnarea> list = cnareaService.queryAll(cnarea);
|
List<CnAreaVo> list = cnareaService.listSelect(cnarea);
|
||||||
return AjaxResult.success(list);
|
return list.stream().sorted(Comparator.comparing(CnAreaVo::getN)).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.ruoyi.sip.service;
|
package com.ruoyi.sip.service;
|
||||||
|
|
||||||
import com.ruoyi.sip.domain.Cnarea;
|
import com.ruoyi.sip.domain.Cnarea;
|
||||||
|
import com.ruoyi.sip.vo.CnAreaVo;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -42,6 +43,7 @@ public interface ICnareaService {
|
||||||
*/
|
*/
|
||||||
int batchRemove(String[] ids);
|
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.domain.Cnarea;
|
||||||
import com.ruoyi.sip.mapper.CnareaMapper;
|
import com.ruoyi.sip.mapper.CnareaMapper;
|
||||||
import com.ruoyi.sip.service.ICnareaService;
|
import com.ruoyi.sip.service.ICnareaService;
|
||||||
|
import com.ruoyi.sip.vo.CnAreaVo;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.List;
|
import java.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author ch
|
* @Author ch
|
||||||
|
@ -69,6 +70,52 @@ public class CnareaServiceImpl implements ICnareaService {
|
||||||
return cnareaMapper.batchRemove(ids);
|
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