Newer
Older
task-bldg / src / main / java / osm / surveyor / task / city / DataLoader.java
@haya4 haya4 on 16 Jul 2022 1 KB index.json の読み込み
package osm.surveyor.task.city;

import java.io.InputStream;

import org.springframework.boot.CommandLineRunner;
import org.springframework.core.io.ClassPathResource;
import org.springframework.stereotype.Component;

import com.fasterxml.jackson.databind.ObjectMapper;

import lombok.RequiredArgsConstructor;
import osm.surveyor.task.city.model.CitiesJson;
import osm.surveyor.task.city.model.City;
import osm.surveyor.task.city.model.CityJson;
import osm.surveyor.task.city.model.Coordinates;

@RequiredArgsConstructor
@Component
public class DataLoader implements CommandLineRunner {
	private final CityRepository repository;
	
	@Override
	public void run(String... args) throws Exception {
		
        // 「src/main/resources/static/city/index.json」を読み込む
        try (InputStream is = new ClassPathResource("static/city/index.json").getInputStream()) {
        	CitiesJson pojo = new ObjectMapper().readValue(is, CitiesJson.class);
        	for (CityJson citiesJson : pojo.getList()) {
        		City city = new City();
        		city.setCitycode(citiesJson.getCode());
        		city.setCityname(citiesJson.getName());
        		city.setFolder(citiesJson.getPath());

        		Coordinates coordinates = citiesJson.toCoordinates();
        		city.setCoordinates(coordinates.getLng(), coordinates.getLat());
        		
        		repository.save(city);
        	}
        }
	}
}