diff --git a/class.png b/class.png index 05af90d..a36d4a5 100644 --- a/class.png +++ b/class.png Binary files differ diff --git a/class.pu b/class.pu index 672326e..1e4f3c4 100644 --- a/class.pu +++ b/class.pu @@ -56,10 +56,10 @@ findByUsername(String) existsByUsername(String) } -SecurityConfig *-- UserDetailsServiceImpl -UserDetailsServiceImpl *-- SiteUserRepository -SecurityController *-- SiteUserRepository -UniqueLoginValidator *-- SiteUserRepository +SecurityConfig ..> UserDetailsServiceImpl +UserDetailsServiceImpl ..> SiteUserRepository +SecurityController ..> SiteUserRepository +UniqueLoginValidator ..> SiteUserRepository UniqueLogin .. UniqueLoginValidator SiteUserRepository <|-- SiteUser @@ -73,10 +73,17 @@ } City .. city +class CityIndex { + - site : String + - list : List[] +} +CityIndex *-- City + interface CityRepository <> { findByCitycode(String) deleteByCitycode(String) } +CityRepository <|-- City class CityController <> { - repository : CityRepository @@ -86,6 +93,16 @@ + editCity(id, model) + deleteCity(id) } +CityController ..> CityRepository + +class CityIndexController <> { + - repository : CityIndexRepository + + show(model) + + addCity(city) + + process(city, result) + + deleteCity(id) +} +CityIndexController ..> CityIndexRepository interface CommandLineRunner @@ -93,11 +110,9 @@ - repository : CityRepository + run() } +DataLoader ..> CityRepository -CityRepository <|-- City -DataLoader *-- CityRepository CommandLineRunner <|-- DataLoader -CityController *-- CityRepository @enduml diff --git a/src/main/java/osm/surveyor/task/city/DataLoader.java b/src/main/java/osm/surveyor/task/city/DataLoader.java index 2f86601..4ffa147 100644 --- a/src/main/java/osm/surveyor/task/city/DataLoader.java +++ b/src/main/java/osm/surveyor/task/city/DataLoader.java @@ -1,10 +1,16 @@ 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.City; +import osm.surveyor.task.city.model.CityIndex; @RequiredArgsConstructor @Component @@ -13,17 +19,19 @@ @Override public void run(String... args) throws Exception { - City city = new City(); - city.setCitycode("01100"); - city.setCityname("北海道 札幌市"); - city.setFolder("01100_sapporo-shi_2020"); - repository.save(city); - - city = new City(); - city.setCitycode("07203"); - city.setCityname("福島県 郡山市"); - city.setFolder("07203_koriyama-shi_2020"); - repository.save(city); + + // 「src/main/resources/static/city/index.json」を読み込む + try (InputStream is = new ClassPathResource("static/city/index.json").getInputStream()) { + + /* + ObjectMapper mapper = new ObjectMapper(); + CityIndex index = mapper.readValue(is, CityIndex.class); + for (City city : index.getList()) { + repository.save(city); + } + */ + + } } } diff --git a/src/main/java/osm/surveyor/task/city/model/CityIndex.java b/src/main/java/osm/surveyor/task/city/model/CityIndex.java new file mode 100644 index 0000000..1aaa15f --- /dev/null +++ b/src/main/java/osm/surveyor/task/city/model/CityIndex.java @@ -0,0 +1,16 @@ +package osm.surveyor.task.city.model; + +import java.util.List; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class CityIndex { + + private String site; + + private List list; + +} diff --git a/src/main/java/osm/surveyor/task/user/config/SecurityConfig.java b/src/main/java/osm/surveyor/task/user/config/SecurityConfig.java index 9775d79..17139b0 100644 --- a/src/main/java/osm/surveyor/task/user/config/SecurityConfig.java +++ b/src/main/java/osm/surveyor/task/user/config/SecurityConfig.java @@ -37,7 +37,8 @@ "/css/**", "/img/**", "/data/**", - "/webjars/**" + "/webjars/**", + "/h2-console/**" ); } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index a0f65e4..57be68a 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,6 +1,12 @@ spring.messages.fallback-to-system-locale=false + +# DataSource spring.datasource.url=jdbc:h2:./taskdb +spring.datasource.username=admin +spring.datasource.password=password spring.datasource.generate-unique-name=false + +# JPA spring.h2.console.enabled=true spring.jpa.show-sql=true spring.jpa.hibernate.ddl-auto=update diff --git a/src/main/resources/static/city/index.json b/src/main/resources/static/city/index.json new file mode 100644 index 0000000..20b5b13 --- /dev/null +++ b/src/main/resources/static/city/index.json @@ -0,0 +1,60 @@ +{ + "site": "http://surveyor.mydns.jp/osm-data/", + "list": [ + {"code": "01100", "name": "北海道 札幌市", "path": "01100_sapporo-shi_2020", "coordinates":[141.35477,43.06172]}, + {"code": "07203", "name": "福島県 郡山市", "path": "07203_koriyama-shi_2020", "coordinates":[140.33421,37.40464]}, + {"code": "07204", "name": "福島県 いわき市", "path": "07204_iwaki-shi_2020", "coordinates":[140.8893,37.0501]}, + {"code": "07205", "name": "福島県 白河市", "path": "07205_shirakawa-shi_2020", "coordinates":[140.2237,37.1240]}, + {"code": "08234", "name": "茨城県 鉾田市", "path": "08234_hokota-shi_2020", "coordinates":[140.5153,36.1586]}, + {"code": "09201", "name": "栃木県 宇都宮市", "path": "09201_utsunomiya-shi_2020", "coordinates":[139.88273,36.55471]}, + {"code": "10203", "name": "群馬県 桐生市", "path": "10203_kiryu-shi_2020", "coordinates":[139.3302,36.4052]}, + {"code": "10207", "name": "群馬県 館林市", "path": "10207_tatebayashi-shi_2020", "coordinates":[139.5430,36.2447]}, + {"code": "11100", "name": "埼玉県 さいたま市", "path": "11100_saitama-shi_2020", "coordinates":[139.6460,35.8610]}, + {"code": "11202", "name": "埼玉県 熊谷市", "path": "11202_kumagaya-shi_2020", "coordinates":[139.38850,36.14724]}, + {"code": "11230", "name": "埼玉県 新座市", "path": "11230_niiza-shi_2020", "coordinates":[139.5553,35.7896]}, + {"code": "11326", "name": "埼玉県 毛呂山町", "path": "11326_moroyama-machi_2020", "coordinates":[139.31614,35.94053]}, + {"code": "12217", "name": "千葉県 柏市", "path": "12217_kashiwa-shi_2020", "coordinates":[139.97620,35.86767]}, + {"code": "13100", "name": "東京23区", "path": "13100_tokyo23-ku_2020", "coordinates":[139.7637,35.6808]}, + {"code": "13201", "name": "東京都 八王子市", "path": "13201_hachioji-shi_2020", "coordinates":[139.28360,35.66033]}, + {"code": "13213", "name": "東京都 東村山市", "path": "13213_higashimurayama-shi_2020", "coordinates":[139.48503,35.76867]}, + {"code": "14100", "name": "神奈川県 横浜市", "path": "14100_yokohama-shi_2020", "coordinates":[139.63682,35.44480]}, + {"code": "14130", "name": "神奈川県 川崎市", "path": "14130_kawasaki-shi_2020", "coordinates":[139.70300,35.53034]}, + {"code": "14150", "name": "神奈川県 相模原市", "path": "14150_sagamihara-shi_2020", "coordinates":[139.2368,35.5646]}, + {"code": "14201", "name": "神奈川県 横須賀市", "path": "14201_yokosuka-shi_2020", "coordinates":[139.66546,35.27301]}, + {"code": "14382", "name": "神奈川県 箱根町", "path": "14382_hakone-machi_2020", "coordinates":[139.03366,35.22248]}, + {"code": "15100", "name": "新潟県 新潟市", "path": "15100_niigata-shi_2020", "coordinates":[139.03622,37.91595]}, + {"code": "17201", "name": "石川県 金沢市", "path": "17201_kanazawa-shi_2020", "coordinates":[136.65693,36.56159]}, + {"code": "17206", "name": "石川県 加賀市", "path": "17206_kaga-shi_2021", "coordinates":[136.31501,36.30282]}, + {"code": "20202", "name": "長野県 松本市", "path": "20202_matsumoto-shi_2020", "coordinates":[137.96847,36.23800]}, + {"code": "20204", "name": "長野県 岡谷市", "path": "20204_okaya-shi_2020", "coordinates":[138.04970,36.07857]}, + {"code": "20209", "name": "長野県 伊那市", "path": "20209_ina-shi_2020", "coordinates":[137.95746,35.82935]}, + {"code": "20214", "name": "長野県 茅野市", "path": "20214_chino-shi_2020", "coordinates":[138.15793,35.98550]}, + {"code": "21201", "name": "岐阜県 岐阜市", "path": "21201_gifu-shi_2020", "coordinates":[136.76315,35.42288]}, + {"code": "22213", "name": "静岡県 掛川市", "path": "22213_kakegawa-shi_2020", "coordinates":[138.01897,34.79317]}, + {"code": "22224", "name": "静岡県 菊川市", "path": "22224_kikugawa-shi_2020", "coordinates":[138.08748,34.75597]}, + {"code": "23100", "name": "愛知県 名古屋市", "path": "23100_nagoya-shi_2020", "coordinates":[136.89995,35.18467]}, + {"code": "23208", "name": "愛知県 津島市", "path": "23208_taushima-shi_2020", "coordinates":[136.75834,35.16682]}, + {"code": "23212", "name": "愛知県 安城市", "path": "23212_anjo-shi_2020", "coordinates":[137.07592,34.94770]}, + {"code": "27100", "name": "大阪府 大阪市", "path": "27100_osaka-shi_2020", "coordinates":[135.50158,34.69351]}, + {"code": "27203", "name": "大阪府 豊中市", "path": "27203_toyonaka-shi_2020", "coordinates":[135.47407,34.78605]}, + {"code": "27204", "name": "大阪府 池田市", "path": "27204_ikeda-shi_2020", "coordinates":[135.43338,34.81956]}, + {"code": "27207", "name": "大阪府 高槻市", "path": "27207_takatsuki-shi_2020", "coordinates":[135.60104,34.88123]}, + {"code": "27224", "name": "大阪府 摂津市", "path": "27224_settsu-shi_2020", "coordinates":[135.55382,34.78268]}, + {"code": "27341", "name": "大阪府 泉北郡忠岡町", "path": "27341_tadaoka-cho_2020", "coordinates":[135.40065,34.49044]}, + {"code": "28210", "name": "兵庫県 加古川市", "path": "28210_kakogawa-shi_2020", "coordinates":[134.85000,34.78667]}, + {"code": "31201", "name": "鳥取県 鳥取市", "path": "31201_tottori-shi_2020", "coordinates":[134.22193,35.49443]}, + {"code": "34202", "name": "広島県 呉市", "path": "34202_kure-shi_2020", "coordinates":[132.56526,34.24830]}, + {"code": "34207", "name": "広島県 福山市", "path": "34207_fukuyama-shi_2020", "coordinates":[133.36256,34.48568]}, + {"code": "38201", "name": "愛媛県 松山市", "path": "38201_matsuyama-shi_2020", "coordinates":[132.76527,33.83939]}, + {"code": "40100", "name": "福岡県 北九州市", "path": "40100_kitakyushu-shi_2020", "coordinates":[130.8749015,33.8829996]}, + {"code": "40203", "name": "福岡県 久留米市", "path": "40203_kurume-shi_2020", "coordinates":[130.50832,33.31960]}, + {"code": "40205", "name": "福岡県 飯塚市", "path": "40205_iizuka-shi_2020", "coordinates":[130.69119,33.64663]}, + {"code": "40220", "name": "福岡県 宗像市", "path": "40220_munakata-shi_2020", "coordinates":[130.54065,33.80550]}, + {"code": "43100", "name": "熊本県 熊本市", "path": "43100_kumamoto-shi_2020", "coordinates":[130.73333,32.78318]}, + {"code": "43204", "name": "熊本県 荒尾市", "path": "43204_arao-shi_2020", "coordinates":[130.4358,32.9855]}, + {"code": "43206", "name": "熊本県 玉名市", "path": "43206_tamana-shi_2020", "coordinates":[130.56269,32.93495]}, + {"code": "43443", "name": "熊本県 上益城郡益城町", "path": "43443_mashiki-machi_2020", "coordinates":[130.83786,32.78937]}, + {"code": "44204", "name": "大分県 日田市", "path": "44204_hita-shi_2020", "coordinates":[130.94110,33.32117]}, + {"code": "47201", "name": "沖縄県 那覇市", "path": "47201_naha-shi_2020", "coordinates":[127.67910,26.21218]} + ] +} \ No newline at end of file diff --git a/src/main/resources/static/data/index.json b/src/main/resources/static/data/index.json deleted file mode 100644 index 20b5b13..0000000 --- a/src/main/resources/static/data/index.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "site": "http://surveyor.mydns.jp/osm-data/", - "list": [ - {"code": "01100", "name": "北海道 札幌市", "path": "01100_sapporo-shi_2020", "coordinates":[141.35477,43.06172]}, - {"code": "07203", "name": "福島県 郡山市", "path": "07203_koriyama-shi_2020", "coordinates":[140.33421,37.40464]}, - {"code": "07204", "name": "福島県 いわき市", "path": "07204_iwaki-shi_2020", "coordinates":[140.8893,37.0501]}, - {"code": "07205", "name": "福島県 白河市", "path": "07205_shirakawa-shi_2020", "coordinates":[140.2237,37.1240]}, - {"code": "08234", "name": "茨城県 鉾田市", "path": "08234_hokota-shi_2020", "coordinates":[140.5153,36.1586]}, - {"code": "09201", "name": "栃木県 宇都宮市", "path": "09201_utsunomiya-shi_2020", "coordinates":[139.88273,36.55471]}, - {"code": "10203", "name": "群馬県 桐生市", "path": "10203_kiryu-shi_2020", "coordinates":[139.3302,36.4052]}, - {"code": "10207", "name": "群馬県 館林市", "path": "10207_tatebayashi-shi_2020", "coordinates":[139.5430,36.2447]}, - {"code": "11100", "name": "埼玉県 さいたま市", "path": "11100_saitama-shi_2020", "coordinates":[139.6460,35.8610]}, - {"code": "11202", "name": "埼玉県 熊谷市", "path": "11202_kumagaya-shi_2020", "coordinates":[139.38850,36.14724]}, - {"code": "11230", "name": "埼玉県 新座市", "path": "11230_niiza-shi_2020", "coordinates":[139.5553,35.7896]}, - {"code": "11326", "name": "埼玉県 毛呂山町", "path": "11326_moroyama-machi_2020", "coordinates":[139.31614,35.94053]}, - {"code": "12217", "name": "千葉県 柏市", "path": "12217_kashiwa-shi_2020", "coordinates":[139.97620,35.86767]}, - {"code": "13100", "name": "東京23区", "path": "13100_tokyo23-ku_2020", "coordinates":[139.7637,35.6808]}, - {"code": "13201", "name": "東京都 八王子市", "path": "13201_hachioji-shi_2020", "coordinates":[139.28360,35.66033]}, - {"code": "13213", "name": "東京都 東村山市", "path": "13213_higashimurayama-shi_2020", "coordinates":[139.48503,35.76867]}, - {"code": "14100", "name": "神奈川県 横浜市", "path": "14100_yokohama-shi_2020", "coordinates":[139.63682,35.44480]}, - {"code": "14130", "name": "神奈川県 川崎市", "path": "14130_kawasaki-shi_2020", "coordinates":[139.70300,35.53034]}, - {"code": "14150", "name": "神奈川県 相模原市", "path": "14150_sagamihara-shi_2020", "coordinates":[139.2368,35.5646]}, - {"code": "14201", "name": "神奈川県 横須賀市", "path": "14201_yokosuka-shi_2020", "coordinates":[139.66546,35.27301]}, - {"code": "14382", "name": "神奈川県 箱根町", "path": "14382_hakone-machi_2020", "coordinates":[139.03366,35.22248]}, - {"code": "15100", "name": "新潟県 新潟市", "path": "15100_niigata-shi_2020", "coordinates":[139.03622,37.91595]}, - {"code": "17201", "name": "石川県 金沢市", "path": "17201_kanazawa-shi_2020", "coordinates":[136.65693,36.56159]}, - {"code": "17206", "name": "石川県 加賀市", "path": "17206_kaga-shi_2021", "coordinates":[136.31501,36.30282]}, - {"code": "20202", "name": "長野県 松本市", "path": "20202_matsumoto-shi_2020", "coordinates":[137.96847,36.23800]}, - {"code": "20204", "name": "長野県 岡谷市", "path": "20204_okaya-shi_2020", "coordinates":[138.04970,36.07857]}, - {"code": "20209", "name": "長野県 伊那市", "path": "20209_ina-shi_2020", "coordinates":[137.95746,35.82935]}, - {"code": "20214", "name": "長野県 茅野市", "path": "20214_chino-shi_2020", "coordinates":[138.15793,35.98550]}, - {"code": "21201", "name": "岐阜県 岐阜市", "path": "21201_gifu-shi_2020", "coordinates":[136.76315,35.42288]}, - {"code": "22213", "name": "静岡県 掛川市", "path": "22213_kakegawa-shi_2020", "coordinates":[138.01897,34.79317]}, - {"code": "22224", "name": "静岡県 菊川市", "path": "22224_kikugawa-shi_2020", "coordinates":[138.08748,34.75597]}, - {"code": "23100", "name": "愛知県 名古屋市", "path": "23100_nagoya-shi_2020", "coordinates":[136.89995,35.18467]}, - {"code": "23208", "name": "愛知県 津島市", "path": "23208_taushima-shi_2020", "coordinates":[136.75834,35.16682]}, - {"code": "23212", "name": "愛知県 安城市", "path": "23212_anjo-shi_2020", "coordinates":[137.07592,34.94770]}, - {"code": "27100", "name": "大阪府 大阪市", "path": "27100_osaka-shi_2020", "coordinates":[135.50158,34.69351]}, - {"code": "27203", "name": "大阪府 豊中市", "path": "27203_toyonaka-shi_2020", "coordinates":[135.47407,34.78605]}, - {"code": "27204", "name": "大阪府 池田市", "path": "27204_ikeda-shi_2020", "coordinates":[135.43338,34.81956]}, - {"code": "27207", "name": "大阪府 高槻市", "path": "27207_takatsuki-shi_2020", "coordinates":[135.60104,34.88123]}, - {"code": "27224", "name": "大阪府 摂津市", "path": "27224_settsu-shi_2020", "coordinates":[135.55382,34.78268]}, - {"code": "27341", "name": "大阪府 泉北郡忠岡町", "path": "27341_tadaoka-cho_2020", "coordinates":[135.40065,34.49044]}, - {"code": "28210", "name": "兵庫県 加古川市", "path": "28210_kakogawa-shi_2020", "coordinates":[134.85000,34.78667]}, - {"code": "31201", "name": "鳥取県 鳥取市", "path": "31201_tottori-shi_2020", "coordinates":[134.22193,35.49443]}, - {"code": "34202", "name": "広島県 呉市", "path": "34202_kure-shi_2020", "coordinates":[132.56526,34.24830]}, - {"code": "34207", "name": "広島県 福山市", "path": "34207_fukuyama-shi_2020", "coordinates":[133.36256,34.48568]}, - {"code": "38201", "name": "愛媛県 松山市", "path": "38201_matsuyama-shi_2020", "coordinates":[132.76527,33.83939]}, - {"code": "40100", "name": "福岡県 北九州市", "path": "40100_kitakyushu-shi_2020", "coordinates":[130.8749015,33.8829996]}, - {"code": "40203", "name": "福岡県 久留米市", "path": "40203_kurume-shi_2020", "coordinates":[130.50832,33.31960]}, - {"code": "40205", "name": "福岡県 飯塚市", "path": "40205_iizuka-shi_2020", "coordinates":[130.69119,33.64663]}, - {"code": "40220", "name": "福岡県 宗像市", "path": "40220_munakata-shi_2020", "coordinates":[130.54065,33.80550]}, - {"code": "43100", "name": "熊本県 熊本市", "path": "43100_kumamoto-shi_2020", "coordinates":[130.73333,32.78318]}, - {"code": "43204", "name": "熊本県 荒尾市", "path": "43204_arao-shi_2020", "coordinates":[130.4358,32.9855]}, - {"code": "43206", "name": "熊本県 玉名市", "path": "43206_tamana-shi_2020", "coordinates":[130.56269,32.93495]}, - {"code": "43443", "name": "熊本県 上益城郡益城町", "path": "43443_mashiki-machi_2020", "coordinates":[130.83786,32.78937]}, - {"code": "44204", "name": "大分県 日田市", "path": "44204_hita-shi_2020", "coordinates":[130.94110,33.32117]}, - {"code": "47201", "name": "沖縄県 那覇市", "path": "47201_naha-shi_2020", "coordinates":[127.67910,26.21218]} - ] -} \ No newline at end of file diff --git a/src/main/resources/static/js/index.js b/src/main/resources/static/js/index.js index 36048d0..1b952b5 100644 --- a/src/main/resources/static/js/index.js +++ b/src/main/resources/static/js/index.js @@ -41,7 +41,7 @@ }); $.when( - $.getJSON("/data/index.json") + $.getJSON("/city/index.json") ).done(function(data) { site = data.site; style = new ol.style.Style({