Administrator %!s(int64=2) %!d(string=hai) anos
pai
achega
e39cc0945d

+ 7 - 0
src/main/java/com/sysu/admin/api/city/ApiCityController.java

@@ -29,6 +29,9 @@ public class ApiCityController {
     CityRepository cityRepository;
     @Autowired
     DistrictRepository districtRepository;
+    @Autowired
+    TownRepository townRepository;
+
 
 
     @RequestMapping(value = "/data")
@@ -40,6 +43,10 @@ public class ApiCityController {
         cityList.stream().forEach(city -> {
             List<District> districts =districtRepository.findList(city.getCode().substring(0,4) + "%");
             city.setDistricts(districts);
+            districts.stream().forEach(district -> {
+                List<Town> towns = townRepository.findList(district.getCode());
+                district.setTowns(towns);
+            });
         });
         return R.succ(province);
     }

+ 4 - 0
src/main/java/com/sysu/admin/controller/city/District.java

@@ -10,6 +10,7 @@ import org.hibernate.annotations.DynamicUpdate;
 import org.locationtech.jts.geom.MultiPolygon;
 
 import javax.persistence.*;
+import java.util.List;
 
 @Data
 @Accessors(chain = true)
@@ -46,4 +47,7 @@ public class District{
     @Column()
     private String code;
 
+    @Transient
+    private List<Town> towns;
+
 }

+ 46 - 0
src/main/java/com/sysu/admin/controller/city/Town.java

@@ -0,0 +1,46 @@
+package com.sysu.admin.controller.city;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import lombok.experimental.FieldNameConstants;
+import org.hibernate.annotations.DynamicInsert;
+import org.hibernate.annotations.DynamicUpdate;
+import org.locationtech.jts.geom.MultiPolygon;
+
+import javax.persistence.*;
+
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@FieldNameConstants(innerTypeName = "FIELDS")
+@Table(name = "p_town")
+@Entity
+@DynamicInsert
+@DynamicUpdate
+public class Town {
+    public Town(){}
+
+    public Town(String name, Integer id) {
+        this.name = name;
+        this.id = id;
+    }
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Integer id;
+
+    @JSONField(serialize = false)
+    @Column(columnDefinition = "geom")
+    private MultiPolygon geom;
+
+    @Transient
+    private String wkt;
+
+    @Column()
+    private String name;
+
+    @Column()
+    private String districtCode;
+}

+ 14 - 0
src/main/java/com/sysu/admin/controller/city/TownRepository.java

@@ -0,0 +1,14 @@
+package com.sysu.admin.controller.city;
+
+import com.xiesx.fastboot.core.jpa.JpaPlusRepository;
+import org.springframework.data.jpa.repository.Query;
+
+import java.util.List;
+
+public interface TownRepository extends JpaPlusRepository<Town, Integer> {
+
+
+    @Query(value = "Select new Town(p.name,p.id) from Town p where p.districtCode = ?1 ")
+    List<Town> findList(String districtCode);
+
+}