- 【版权所有,文章允许转载,但须以链接方式注明源地址,否则追究法律责任】
- 【创作不易,点个赞就是对我最大的支持】
前言
仅作为学习笔记,供大家参考
总结的不错的话,记得点赞收藏关注哦!
背景: 一个机场对应多个飞机
因oracle数据库不能进行分组,故用此方法进行去重
也可以用mybatis一对多解决
List<City> newcityList=new ArrayList<>();
List<City> cityList= cityMapper.selectCityListByJc(citys);
List<Airport> airportList = new ArrayList<>();
for (int i =0;i<cityList.size();i++) {
if(i!=0){
if(cityList.get(i).getId().equals(cityList.get(i-1).getId())){
Airport airport=new Airport();
airport.setSanzm(cityList.get(i).getSanzm());
airport.setSizm(cityList.get(i).getSizm());
airport.setJcmcCh(cityList.get(i).getJcmcCh());
airportList.add(airport);
if(i==cityList.size()-1){
cityList.get(i-1).setAirportList(airportList);
newcityList.add(cityList.get(i-1));
}
}else{
cityList.get(i-1).setAirportList(airportList);
newcityList.add(cityList.get(i-1));
airportList = new ArrayList<>();
Airport airport=new Airport();
airport.setSanzm(cityList.get(i).getSanzm());
airport.setSizm(cityList.get(i).getSizm());
airport.setJcmcCh(cityList.get(i).getJcmcCh());
airportList.add(airport);
}
}else{
Airport airport=new Airport();
airport.setSanzm(cityList.get(i).getSanzm());
airport.setSizm(cityList.get(i).getSizm());
airport.setJcmcCh(cityList.get(i).getJcmcCh());
airportList.add(airport);
}
}
if(newcityList.size()>0){
for (City item : newcityList) {
//根据城市的国家id查询国家信息
Country country = countryMapper.selectByPrimaryKey(item.getGjid());
item.setGjmc(country.getGjmcCh());
//根据城市id查询基地
FlightBaseModel flightBaseModel=new FlightBaseModel();
flightBaseModel.setCsid(item.getId());
List<FlightBase> flightBasesList=flightBaseMapper.selectList(tenantId,flightBaseModel);
if(flightBasesList!=null){
item.setFlightBasesList(flightBasesList);
}
}
//仅查看基地
/* Iterator<City> it = newcityList.iterator();
while (it.hasNext()){
if(Objects.nonNull(model.getJck()) && model.getJck()){
if (it.next().getFlightBasesList()==null){
it.remove();
}
}
}*/
}
创作不易,点个赞就是对我最大的支持~
wxgzh:程序员温眉
CSDN:程序员温眉
每天进步一点点的程序员