Administrator 2 éve
szülő
commit
6c6bac1802

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

@@ -0,0 +1,50 @@
+package com.sysu.admin.api.city;
+
+import com.sysu.admin.controller.city.*;
+import com.sysu.admin.controller.crop.CropLandService;
+import com.sysu.admin.controller.crop.range.LandRangeIndexService;
+import com.sysu.admin.site.CommonVo;
+import com.sysu.admin.utils.shape.GeoCastUtil;
+import com.xiesx.fastboot.base.result.BaseResult;
+import com.xiesx.fastboot.base.result.R;
+import org.locationtech.jts.geom.Point;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.List;
+
+/**
+ * 镇区域
+ */
+@RequestMapping("/api/city")
+@Controller("ApiCityController2")
+public class ApiCityController {
+
+    @Autowired
+    ProvinceRepository provinceRepository;
+    @Autowired
+    CityRepository cityRepository;
+    @Autowired
+    DistrictRepository districtRepository;
+
+
+    @RequestMapping(value = "/data")
+    @ResponseBody
+    public BaseResult data(){
+        Province province = provinceRepository.find("440000");
+        List<City> cityList = cityRepository.findListByCode(province.getCode().substring(0, 2) + "%");
+        province.setCityList(cityList);
+        cityList.stream().forEach(city -> {
+            List<District> districts =districtRepository.findList(city.getCode().substring(0,4) + "%");
+            city.setDistricts(districts);
+        });
+        return R.succ(province);
+    }
+
+
+
+
+}

+ 11 - 1
src/main/java/com/sysu/admin/controller/city/City.java

@@ -21,6 +21,13 @@ import java.util.List;
 @DynamicInsert
 @DynamicUpdate
 public class City{
+
+    public City(){}
+    public City(String name, String code) {
+        this.name = name;
+        this.code = code;
+    }
+
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
     private Integer id;
@@ -36,10 +43,13 @@ public class City{
     private String name;
 
     @Column()
-    private Integer code;
+    private String code;
 
     @Transient
     @JSONField(serialize = false)
     private List<District> districtList;
 
+    @Transient
+    @JSONField(serialize = true)
+    private List<District> districts;
 }

+ 2 - 2
src/main/java/com/sysu/admin/controller/city/CityController.java

@@ -51,7 +51,7 @@ public class CityController {
 
     @RequestMapping(value = "/findJson")
     @ResponseBody
-    public BaseResult findJson(int code, int level){
+    public BaseResult findJson(String code, int level){
         Object res = null;
         switch (level){
             case 0:
@@ -82,7 +82,7 @@ public class CityController {
 
     @RequestMapping(value = "/findBuffer")
     @ResponseBody
-    public BaseResult findBuffer(int code, int level){
+    public BaseResult findBuffer(String code, int level){
         Object res = null;
         switch (level){
             case 0:

+ 7 - 1
src/main/java/com/sysu/admin/controller/city/CityRepository.java

@@ -1,7 +1,13 @@
 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 CityRepository extends JpaPlusRepository<City, Integer> {
-    City findByCode(int code);
+    City findByCode(String code);
+
+    @Query(value = "Select new City(p.name,p.code) from City p where p.code like ?1 ")
+    List<City> findListByCode(String likeCode);
 }

+ 7 - 1
src/main/java/com/sysu/admin/controller/city/District.java

@@ -20,6 +20,12 @@ import javax.persistence.*;
 @DynamicInsert
 @DynamicUpdate
 public class District{
+    public District(String name, String code) {
+        this.name = name;
+        this.code = code;
+    }
+    public District(){}
+
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
     private Integer id;
@@ -38,6 +44,6 @@ public class District{
     private String name;
 
     @Column()
-    private Integer code;
+    private String code;
 
 }

+ 6 - 1
src/main/java/com/sysu/admin/controller/city/DistrictRepository.java

@@ -4,11 +4,16 @@ import com.xiesx.fastboot.core.jpa.JpaPlusRepository;
 import org.locationtech.jts.geom.Geometry;
 import org.springframework.data.jpa.repository.Query;
 
+import java.util.List;
+
 public interface DistrictRepository extends JpaPlusRepository<District, Integer> {
 
-    District findByCode(int code);
+    District findByCode(String code);
 
     @Query(value = "SELECT * FROM \"p_district\" where St_within(?1, geom) limit 1", nativeQuery = true)
     District findByPoint(Geometry point);
 
+    @Query(value = "Select new District(p.name,p.code) from District p where p.code like ?1 ")
+    List<District> findList(String likeCode);
+
 }

+ 12 - 1
src/main/java/com/sysu/admin/controller/city/Province.java

@@ -10,6 +10,7 @@ import org.hibernate.annotations.DynamicUpdate;
 import org.locationtech.jts.geom.MultiPolygon;
 
 import javax.persistence.*;
+import java.util.List;
 
 /**
  * 省
@@ -23,6 +24,13 @@ import javax.persistence.*;
 @DynamicInsert
 @DynamicUpdate
 public class Province{
+    public Province(){}
+
+    public Province(String name, String code) {
+        this.name = name;
+        this.code = code;
+    }
+
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
     private Integer id;
@@ -38,6 +46,9 @@ public class Province{
     private String name;
 
     @Column()
-    private Integer code;
+    private String code;
+
+    @Transient
+    private List<City> cityList;
 
 }

+ 7 - 1
src/main/java/com/sysu/admin/controller/city/ProvinceRepository.java

@@ -1,8 +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 ProvinceRepository extends JpaPlusRepository<Province, Integer> {
-    Province findByCode(Integer code);
+    Province findByCode(String code);
+
+    @Query(value = "Select new Province(p.name,p.code) from Province p where p.code = ?1 ")
+    Province find(String code);
 }

+ 3 - 3
src/main/java/com/sysu/admin/controller/crop/CropLandService.java

@@ -133,9 +133,9 @@ public class CropLandService extends BaseService<CropLand, Long> {
 
 
     public void setCity(CropLand bean, District district){
-        bean.setProvince(((int)(district.getCode() / 10000)) * 10000);
-        bean.setCity(((int)(district.getCode() / 100)) * 100);
-        bean.setDistrict(district.getCode());
+        bean.setProvince(((int)(Integer.valueOf(district.getCode()) / 10000)) * 10000);
+        bean.setCity(((int)(Integer.valueOf(district.getCode()) / 100)) * 100);
+        bean.setDistrict(Integer.valueOf(district.getCode()));
     }
 
     @DynamicTableNames(value = "bean")

+ 3 - 3
src/main/java/com/sysu/admin/controller/crop/CropLandVo.java

@@ -58,9 +58,9 @@ public class CropLandVo{
      * 状态
      */
     private Integer status;
-    private Integer provinceId;
-    private Integer cityId;
-    private Integer districtId;
+    private String provinceId;
+    private String cityId;
+    private String districtId;
     private String name;
     private String address;
 

+ 1 - 1
src/main/java/com/sysu/admin/controller/crop/range/LandRangeIndex.java

@@ -26,7 +26,7 @@ public class LandRangeIndex {
     @Column
     private String name;
     @Column
-    private Integer code;
+    private String code;
 
     @JSONField(serialize = false)
     @Column(columnDefinition = "geom")

+ 1 - 1
src/main/java/com/sysu/admin/controller/crop/range/LandRangeIndexService.java

@@ -53,7 +53,7 @@ public class LandRangeIndexService extends BaseService<LandRangeIndex, PKRP> {
         return res;
     }
 
-    public String getTableNameByCode(Integer code){
+    public String getTableNameByCode(String code){
         QLandRangeIndex qLandRangeIndex = QLandRangeIndex.landRangeIndex;
         Optional<LandRangeIndex> landRangeIndex = mLandRangeIndexRepository.findOne(qLandRangeIndex.code.eq(code));
         if(landRangeIndex.isPresent()){

+ 1 - 1
src/main/java/com/sysu/admin/controller/crop/xls/CropExcelService.java

@@ -39,7 +39,7 @@ public class CropExcelService {
                 cropExcel.setCropType(cropClassItem == null ? null : cropClassItem.getName());
             }
 
-            cropExcel.setDistrict(districtRepository.findByCode(cropLand.getDistrict().intValue()).getName());
+            cropExcel.setDistrict(districtRepository.findByCode(cropLand.getDistrict().toString()).getName());
 
             if(cropLand.getGrowingPeriod() != null) {
                 CropPeriod cropPeriod = cropPeriodService.findOne(cropLand.getGrowingPeriod());

+ 1 - 1
src/main/java/com/sysu/admin/site/CommonVo.java

@@ -5,7 +5,7 @@ import lombok.Data;
 @Data
 public class CommonVo {
     private Long id;
-    private Integer code;
+    private String code;
     private Integer level;
     private Double x1;
     private Double y1;

+ 1 - 1
src/main/java/com/sysu/admin/site/SiteCityController.java

@@ -46,7 +46,7 @@ public class SiteCityController {
 
     @RequestMapping(value = "/findJson")
     @ResponseBody
-    public BaseResult findJson(int code, int level){
+    public BaseResult findJson(String code, int level){
         Object res = null;
         switch (level){
             case 0: