Administrator 2 jaren geleden
bovenliggende
commit
d9f8e59360

+ 13 - 0
src/main/java/com/sysu/admin/api/crop/ApiLandController.java

@@ -1,8 +1,10 @@
 package com.sysu.admin.api.crop;
 
+import com.sysu.admin.controller.aland.Land;
 import com.sysu.admin.controller.aland.LandService;
 import com.sysu.admin.site.CommonVo;
 import com.sysu.admin.support.base.BaseComponent;
+import com.sysu.admin.utils.shape.GeoCastUtil;
 import com.xiesx.fastboot.base.result.BaseResult;
 import com.xiesx.fastboot.base.result.R;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -10,6 +12,8 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 @RequestMapping("/api/land")
 @RestController("ApiLandController2")
 public class ApiLandController extends BaseComponent {
@@ -27,4 +31,13 @@ public class ApiLandController extends BaseComponent {
         return R.succ(landService.getCropAreaStat(commonVo.getDistrict(),commonVo.getTown(), commonVo.getDate()));
     }
 
+    @RequestMapping("/list")
+    public BaseResult list(@RequestBody CommonVo commonVo){
+        List<Land> landList = landService.list(commonVo.getDistrict(),commonVo.getTown(), commonVo.getLimit());
+        landList.stream().forEach(land -> {
+            land.setGeojson(GeoCastUtil.gjson.toString(land.getGeom()));
+        });
+        return R.succ(landList);
+    }
+
 }

+ 0 - 4
src/main/java/com/sysu/admin/controller/aland/Land.java

@@ -85,10 +85,6 @@ Area——面积(平方米)
     @Column
     private Double value;
     @Column
-    private Integer fid_1;
-    @Column
-    private Integer inpoly_f_1;
-    @Column
     private Integer majority;
 
     @JSONField(serialize = false)

+ 3 - 0
src/main/java/com/sysu/admin/controller/aland/LandRepository.java

@@ -19,4 +19,7 @@ public interface LandRepository extends JpaPlusRepository<Land, Long> {
     @Query(value = "select majority,sum(area) from  leizhou_land where St_within(geom,st_geomfromtext(?1,4326)) group by majority",nativeQuery = true)
     List<Object[]> statMajority(String wkt);
 
+    @Query(value = "select * from  leizhou_land where St_within(geom,st_geomfromtext(?1,4326)) limit ?2",nativeQuery = true)
+    List<Land> findListByWkt(String wkt,Integer limit);
+
 }

+ 20 - 0
src/main/java/com/sysu/admin/controller/aland/LandService.java

@@ -4,11 +4,15 @@ import com.sysu.admin.controller.city.CityRepository;
 import com.sysu.admin.controller.city.DistrictRepository;
 import com.sysu.admin.controller.city.TownRepository;
 import com.sysu.admin.support.base.BaseService;
+import com.sysu.admin.support.system.user.User;
 import com.sysu.admin.utils.MySimpleDateFormat;
 import com.sysu.admin.utils.TextUtil;
 import com.xiesx.fastboot.core.jpa.JpaPlusRepository;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.domain.Sort;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
@@ -89,6 +93,22 @@ public class LandService extends BaseService<Land,Long> {
         return list;
     }
 
+    public List<Land> list(String district, Integer townId, Integer limit){
+        limit = limit == null ? 50 : limit;
+        String wkt = null;
+        if(townId != null) {
+             wkt = townRepository.findWktById(townId);
+        }else if(StringUtils.isNotBlank(district)) {
+             wkt = districtRepository.findWktByCode(district);
+        }
+        if(wkt == null) {
+            Pageable pageable = PageRequest.of(1, limit, Sort.by(Land.FIELDS.id));
+            return landRepository.findAll(pageable).toList();
+        }else{
+            return landRepository.findListByWkt(wkt, limit);
+        }
+    }
+
 
     @Override
     public JpaPlusRepository<Land, Long> r() {

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

@@ -19,4 +19,5 @@ public class CommonVo {
     private String district;
     private Integer town;
     private Date date;
+    private Integer limit;
 }