package com.panzhihua.service_community.service.impl;
|
|
import java.util.ArrayList;
|
import java.util.Comparator;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
import javax.annotation.Resource;
|
|
import com.google.common.collect.Lists;
|
import com.panzhihua.common.model.vos.community.*;
|
import com.panzhihua.common.model.vos.community.switchs.CommunitySwitchAllAppletsVO;
|
import com.panzhihua.common.model.vos.community.switchs.StreetAllAppletsVO;
|
import com.panzhihua.service_community.dao.*;
|
import com.panzhihua.service_community.model.dos.ComStreetDO;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.stereotype.Service;
|
|
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.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.service.ComMngProvinceService;
|
|
@Service
|
public class ComMngProvinceServiceImpl implements ComMngProvinceService {
|
|
@Resource
|
private ComMngProvinceDAO comMngProvinceDAO;
|
|
@Resource
|
private ComMngCityDAO comMngCityDAO;
|
|
@Resource
|
private ComMngDistrictDAO comMngDistrictDAO;
|
|
@Resource
|
private ComStreetDAO comStreetDAO;
|
|
|
@Resource
|
private ComActDAO comActDAO;
|
|
@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,String areaCode) {
|
//省份
|
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);
|
}
|
|
@Override
|
public R getCityTreeByCode(Integer provinceAdcode, String areaCode,String appId) {
|
//四川省
|
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(districtVo);
|
|
LambdaQueryWrapper<ComStreetDO> param = new QueryWrapper<ComStreetDO>().lambda();
|
ComStreetVO comStreetVO=new ComStreetVO();
|
comStreetVO.setAreaCode(d.getDistrictAdcode());
|
if (comStreetVO.getAreaCode() != null) {
|
param.eq(ComStreetDO::getAreaCode, comStreetVO.getAreaCode())
|
.eq(ComStreetDO::getAppId, appId);
|
}
|
List<ComStreetDO> comStreetDOS = comStreetDAO.selectList(param);
|
comStreetDOS.forEach(dos ->
|
{
|
ComMngAreaVO csd = new ComMngAreaVO(0, dos.getName());
|
BeanUtils.copyProperties(dos, csd);
|
districtVo.getChildren().add(csd);
|
|
// 查询街道下社区列表
|
List<CommunitySwitchAllAppletsVO> communityList = comActDAO.getCommunityListByStreetId(dos.getStreetId());
|
|
communityList.forEach(commItem ->
|
{
|
ComMngAreaVO cssd = new ComMngAreaVO(0, commItem.getName(),commItem.getCommunityId()+"");
|
BeanUtils.copyProperties(commItem, cssd);
|
csd.getChildren().add(cssd);
|
});
|
|
|
});
|
|
|
});
|
});
|
});
|
return R.ok(vos);
|
}
|
}
|