|
@@ -1,22 +1,30 @@
|
|
|
package com.nokia.financeapi.service.house;
|
|
|
|
|
|
import com.nokia.financeapi.common.R;
|
|
|
+import com.nokia.financeapi.dao.house.AreaDao;
|
|
|
import com.nokia.financeapi.dao.house.HouseResourceMapMapper;
|
|
|
import com.nokia.financeapi.pojo.dto.GetBuildingAreaStatDto;
|
|
|
import com.nokia.financeapi.pojo.dto.GetLandBuildingStatDto;
|
|
|
+import com.nokia.financeapi.pojo.po.AreaPo;
|
|
|
import com.nokia.financeapi.pojo.vo.GetBuildingAreaStatVo;
|
|
|
import com.nokia.financeapi.pojo.vo.GetLandBuildingStatVo;
|
|
|
+import com.nokia.financeapi.pojo.vo.TreeAreaVo;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.util.StringUtils;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
@Service
|
|
|
public class HouseResourceMapService {
|
|
|
private final HouseResourceMapMapper houseResourceMapMapper;
|
|
|
+ private final AreaDao areaDao;
|
|
|
|
|
|
- public HouseResourceMapService(HouseResourceMapMapper houseResourceMapMapper) {
|
|
|
+ public HouseResourceMapService(HouseResourceMapMapper houseResourceMapMapper, AreaDao areaDao) {
|
|
|
this.houseResourceMapMapper = houseResourceMapMapper;
|
|
|
+ this.areaDao = areaDao;
|
|
|
}
|
|
|
|
|
|
public R<GetBuildingAreaStatVo> getBuildingAreaStat(GetBuildingAreaStatDto dto) {
|
|
@@ -29,4 +37,49 @@ public class HouseResourceMapService {
|
|
|
}
|
|
|
return R.ok(houseResourceMapMapper.getCityLandBuildingStat());
|
|
|
}
|
|
|
+
|
|
|
+ public R<TreeAreaVo> treeArea() {
|
|
|
+ // 查询所有地区
|
|
|
+ List<AreaPo> areas = areaDao.getAll();
|
|
|
+ Map<Integer, List<AreaPo>> parentMap = getAreaParentMap(areas);
|
|
|
+ // 地市列表
|
|
|
+ List<AreaPo> cityList = parentMap.get(130000);
|
|
|
+ TreeAreaVo vo = new TreeAreaVo();
|
|
|
+ vo.setLabel("河北省");
|
|
|
+ vo.setValue(130000);
|
|
|
+ List<TreeAreaVo> cityVoList = new ArrayList<>();
|
|
|
+ vo.setChildren(cityVoList);
|
|
|
+ for (AreaPo tt : cityList) {
|
|
|
+ List<TreeAreaVo> districtVoList = new ArrayList<>();
|
|
|
+ TreeAreaVo cityVo = new TreeAreaVo();
|
|
|
+ cityVo.setLabel(tt.getAreaName());
|
|
|
+ cityVo.setValue(tt.getAreaId());
|
|
|
+ cityVo.setChildren(districtVoList);
|
|
|
+ cityVoList.add(cityVo);
|
|
|
+ // 区县列表
|
|
|
+ List<AreaPo> districtList = parentMap.get(tt.getAreaId());
|
|
|
+ for (AreaPo ttt : districtList) {
|
|
|
+ TreeAreaVo districtVo = new TreeAreaVo();
|
|
|
+ districtVo.setLabel(ttt.getAreaName());
|
|
|
+ districtVo.setValue(ttt.getAreaId());
|
|
|
+ districtVoList.add(districtVo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return R.ok(vo);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 得到地区父地图
|
|
|
+ *
|
|
|
+ * @param areas 区域
|
|
|
+ */
|
|
|
+ private Map<Integer, List<AreaPo>> getAreaParentMap(List<AreaPo> areas) {
|
|
|
+ Map<Integer, List<AreaPo>> parentMap = new HashMap<>();
|
|
|
+ for (AreaPo t : areas)
|
|
|
+ {
|
|
|
+ parentMap.putIfAbsent(t.getParentId(), new ArrayList<>());
|
|
|
+ parentMap.get(t.getParentId()).add(t);
|
|
|
+ }
|
|
|
+ return parentMap;
|
|
|
+ }
|
|
|
}
|