package com.panzhihua.service_community.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.panzhihua.common.model.vos.R;
|
import com.panzhihua.common.model.vos.community.ComMngAreaVO;
|
import com.panzhihua.common.model.vos.community.ComMngCityVO;
|
import com.panzhihua.common.model.vos.community.ComMngDistrictVO;
|
import com.panzhihua.common.model.vos.community.ComMngProvinceVO;
|
import com.panzhihua.service_community.dao.ComMngCityDAO;
|
import com.panzhihua.service_community.dao.ComMngDistrictDAO;
|
import com.panzhihua.service_community.dao.ComMngProvinceDAO;
|
import com.panzhihua.service_community.dao.ComMngStructAreaDAO;
|
import com.panzhihua.service_community.model.dos.ComMngCityDO;
|
import com.panzhihua.service_community.model.dos.ComMngDistrictDO;
|
import com.panzhihua.service_community.model.dos.ComMngProvinceDO;
|
import com.panzhihua.service_community.model.dos.ComMngStructAreaDO;
|
import com.panzhihua.service_community.service.ComMngProvinceService;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
@Service
|
public class ComMngProvinceServiceImpl implements ComMngProvinceService {
|
|
@Resource
|
private ComMngProvinceDAO comMngProvinceDAO;
|
|
@Resource
|
private ComMngCityDAO comMngCityDAO;
|
|
@Resource
|
private ComMngDistrictDAO comMngDistrictDAO;
|
|
@Resource
|
private ComMngStructAreaDAO comMngStructAreaDAO;
|
|
@Override
|
public R getProvince() {
|
List<ComMngProvinceDO> provinceDOS = comMngProvinceDAO.selectList(new LambdaQueryWrapper<>());
|
List<ComMngProvinceVO> vos = new ArrayList<>();
|
provinceDOS.forEach(p -> {
|
ComMngProvinceVO vo = new ComMngProvinceVO();
|
BeanUtils.copyProperties(p, vo);
|
vos.add(vo);
|
});
|
return R.ok(vos);
|
}
|
|
@Override
|
public R getCityByProvinceCode(Integer provinceAdcode) {
|
List<ComMngCityDO> comMngCityDOS = comMngCityDAO.selectList(new QueryWrapper<ComMngCityDO>().lambda().eq(ComMngCityDO::getProvinceAdcode, provinceAdcode));
|
List<ComMngCityVO> vos = new ArrayList<>();
|
comMngCityDOS.forEach(c -> {
|
ComMngCityVO vo = new ComMngCityVO();
|
BeanUtils.copyProperties(c, vo);
|
vos.add(vo);
|
});
|
return R.ok(vos);
|
}
|
|
|
@Override
|
public R getDistrictByCityCode(Integer cityAdcode) {
|
List<ComMngDistrictDO> comMngDistrictDOS = comMngDistrictDAO.selectList(new QueryWrapper<ComMngDistrictDO>().lambda().eq(ComMngDistrictDO::getCityAdcode, cityAdcode));
|
List<ComMngDistrictVO> vos = new ArrayList<>();
|
comMngDistrictDOS.forEach(c -> {
|
ComMngDistrictVO vo = new ComMngDistrictVO();
|
BeanUtils.copyProperties(c, vo);
|
vos.add(vo);
|
});
|
return R.ok(vos);
|
}
|
|
@Override
|
public R getCityTreeByProvinceCode(Integer provinceAdcode) {
|
List<ComMngProvinceDO> provinceDOS = comMngProvinceDAO.selectList(new QueryWrapper<ComMngProvinceDO>().lambda().eq(ComMngProvinceDO::getProvinceAdcode, provinceAdcode));
|
List<ComMngCityDO> cityDOS = comMngCityDAO.selectList(new QueryWrapper<>());
|
List<ComMngDistrictDO> districtDOS = comMngDistrictDAO.selectList(new QueryWrapper<>());
|
List<ComMngAreaVO> vos = new ArrayList<>();
|
provinceDOS.forEach(p -> {
|
ComMngAreaVO pvo = new ComMngAreaVO(p.getProvinceAdcode(), p.getProvinceName());
|
List<ComMngCityDO> citys = cityDOS.stream().filter(city -> city.getProvinceAdcode().equals(p.getProvinceAdcode()) && city.getCityAdcode().equals(510400)).collect(Collectors.toList());
|
citys.forEach(c -> {
|
ComMngAreaVO cityVo = new ComMngAreaVO(c.getCityAdcode(), c.getCityName());
|
BeanUtils.copyProperties(c, cityVo);
|
pvo.getChildren().add(cityVo);
|
List<ComMngDistrictDO> districts = districtDOS.stream().filter(district -> district.getCityAdcode().equals(c.getCityAdcode())).collect(Collectors.toList());
|
districts.forEach(d -> {
|
ComMngAreaVO districtVo = new ComMngAreaVO(d.getDistrictAdcode(), d.getDistrictName());
|
BeanUtils.copyProperties(d, districtVo);
|
cityVo.getChildren().add(districtVo);
|
});
|
});
|
vos.add(pvo);
|
});
|
return R.ok(vos);
|
}
|
}
|