Administrator vor 2 Jahren
Ursprung
Commit
8b6fedc09c

+ 1 - 1
src/main/java/com/sysu/admin/api/crop/CropClassController.java → src/main/java/com/sysu/admin/api/crop/ApiCropClassController.java

@@ -21,7 +21,7 @@ import java.util.List;
 
 @RequestMapping("/api/crop_class")
 @RestController
-public class CropClassController {
+public class ApiCropClassController {
 
     @Autowired
     private CropClassItemPeriodRepository cropClassItemPeriodRepository;

+ 1 - 0
src/main/java/com/sysu/admin/api/crop/CropController.java

@@ -65,6 +65,7 @@ public class CropController extends BaseComponent {
                                  @RequestParam("near") MultipartFile near,
                                  String json){
         CropVo vo = JSON.parseObject(json, CropVo.class);
+        validate(vo);
         CropLand bean = cityLandService.findOne(vo.getId());
         BeanUtils.copyProperties(vo, bean, CopyUtils.nullNames(vo));
         CropImage fayImage = vo.getFay();

+ 10 - 0
src/main/java/com/sysu/admin/api/crop/CropVo.java

@@ -5,21 +5,31 @@ import lombok.Data;
 import lombok.experimental.FieldNameConstants;
 
 import javax.persistence.Column;
+import javax.validation.constraints.NotNull;
 
 @Data
 @FieldNameConstants(innerTypeName = "FIELDS")
 public class CropVo {
+    @NotNull(message = "id为空!")
     private Long id;
     private Integer status;
     private Double[] point;
     private Integer meter;
+    @NotNull(message = "作物类型为空!")
     private Integer cropType;
+    @NotNull(message = "生长周期为空!")
     private Integer growingPeriod;
     private Integer yield;
+    @NotNull(message = "远景图片为空!")
     private CropImage fay;
+    @NotNull(message = "中景图片为空!")
     private CropImage center;
+    @NotNull(message = "近景图片为空!")
     private CropImage near;
+    @NotNull(message = "采集经度为空!")
     private Double pickLongitude;
+    @NotNull(message = "采集纬度为空!")
     private Double pickLatitude;
+    private String desc;
 
 }

+ 6 - 0
src/main/java/com/sysu/admin/controller/crop/CropLand.java

@@ -96,6 +96,12 @@ public class CropLand {
     @Column
     private Integer status;
 
+    /**
+     * 描述
+     */
+    @Column(name = "\"desc\"")
+    private String desc;
+
     @Transient
     private CropImage fay;
     @Transient

+ 4 - 1
src/main/java/com/sysu/admin/controller/geo/CropLandController.java → src/main/java/com/sysu/admin/controller/crop/CropLandController.java

@@ -1,5 +1,7 @@
-package com.sysu.admin.controller.geo;
+package com.sysu.admin.controller.crop;
 
+import com.alibaba.fastjson.JSON;
+import com.sysu.admin.api.crop.CropVo;
 import com.sysu.admin.controller.crop.CropLand;
 import com.sysu.admin.controller.crop.CropLandService;
 import com.sysu.admin.controller.crop.CropLandVo;
@@ -36,6 +38,7 @@ public class CropLandController {
             return R.fail();
         }
         cityLand.setWkt(GeoCastUtil.geomToWkt(cityLand.getGeom()));
+//        cityLand.setWkt(cityLandService.getBuffer(new Double[]{x,y}, 1000));
         return R.succ(cityLand);
     }
 

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

@@ -19,5 +19,8 @@ public interface CropLandRepository extends JpaPlusRepository<CropLand, Long> {
             ");",nativeQuery = true)
     List<CropLand> findByBuffer(String pointWKT, Double degree);
 
+    @Query(value = "select ST_AsText(ST_Buffer(st_geomfromtext(?1),?2, 'quad_segs=8'))", nativeQuery = true)
+    String getBuffer(String pointWKT, Double degree);
+
 
 }

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

@@ -28,6 +28,11 @@ public class CropLandService extends BaseService<CropLand, Long> {
         return cityLand;
     }
 
+    public String getBuffer(Double[] point, Integer meter){
+        double degree = meter / (2 * Math.PI * 6371004) * 360;
+        return mCropLandRepository.getBuffer("Point("+point[0]+" "+point[1]+")", degree);
+    }
+
     @Transactional
     public void updateStatus(Long id, Integer status){
         CropLand bean = mCropLandRepository.findOne(id);

+ 4 - 0
src/main/java/com/sysu/admin/controller/crop/class_item/CropClassItemRepository.java

@@ -3,8 +3,12 @@ package com.sysu.admin.controller.crop.class_item;
 import com.sysu.admin.controller.crop.clazz.CropClass;
 import com.xiesx.fastboot.core.jpa.JpaPlusRepository;
 
+import java.util.List;
+
 public interface CropClassItemRepository extends JpaPlusRepository<CropClassItem, Integer> {
 
     CropClassItem findByName(String name);
 
+    public List<CropClassItem> findAllByClassId(Integer classId);
+
 }

+ 20 - 0
src/main/java/com/sysu/admin/controller/crop/class_item/CropItemController.java

@@ -0,0 +1,20 @@
+package com.sysu.admin.controller.crop.class_item;
+
+import com.xiesx.fastboot.base.result.BaseResult;
+import com.xiesx.fastboot.base.result.R;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+@RequestMapping("/crop_item")
+@RestController
+public class CropItemController {
+    @Autowired
+    CropClassItemRepository cropClassItemRepository;
+
+    @RequestMapping("/list")
+    public BaseResult list(Integer classId){
+        return R.succ(cropClassItemRepository.findAllByClassId(classId));
+    }
+}

+ 20 - 0
src/main/java/com/sysu/admin/controller/crop/clazz/CropClassController.java

@@ -0,0 +1,20 @@
+package com.sysu.admin.controller.crop.clazz;
+
+import com.xiesx.fastboot.base.result.BaseResult;
+import com.xiesx.fastboot.base.result.R;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+@RequestMapping("/crop_class")
+@RestController
+public class CropClassController {
+    @Autowired
+    CropClassRepository cropClassRepository;
+
+    @RequestMapping("/list")
+    public BaseResult list(){
+        return R.succ(cropClassRepository.findAll());
+    }
+}

+ 2 - 1
src/main/resources/application-adm.yml

@@ -56,7 +56,8 @@ spring:
   jpa:
     database-platform: org.hibernate.spatial.dialect.postgis.PostgisDialect
     show-sql: false
-config.image-dir-path: /www/wwwroot/emap.sysuimars.com/images/
+config:
+  image-dir-path: /www/wwwroot/emap.sysuimars.com/images/
 postgis:
   url: localhost
   port: 39543

+ 2 - 1
src/main/resources/application-dev.yml

@@ -17,7 +17,8 @@ spring:
     password: postgres
     pool-name: HikariPool-1
 
-config.image-dir-path: E:/zcjy/workspace3/sysu_emap/src/main/webapp/images/
+config:
+  image-dir-path: E:/zcjy/workspace3/sysu_emap/src/main/webapp/images/
 postgis:
   url: 101.35.200.5
   port: 39543

+ 24 - 4
src/main/webapp/WEB-INF/jsp/page/publish_task.jsp

@@ -28,6 +28,28 @@
                     document.getElementById("file").value = ""
                     $("#filename").val("")
                 })
+
+                tool.loadSelect("${base}/crop_class/list",{
+                    id:"cropClassId",
+                    data: {},
+                    valueField: 'id',
+                    textField: 'name',
+                    defaultOption:'<option value="">请选择分类</option>'
+                })
+
+                document.getElementById("cropClassId").onchange = function(e){
+                    console.log(e)
+                }
+                form.on('select(cropClassId)', function (data) {
+                    tool.loadSelect("${base}/crop_item/list",{
+                        id:"cropItemId",
+                        data: {classId: data.value},
+                        valueField: 'id',
+                        textField: 'name',
+                        defaultOption:'<option value="">请选择作物</option>'
+                    })
+                });
+
             });
             function publish(){
                 alert(123)
@@ -51,13 +73,11 @@
             <div class="layui-form-item">
                 <label class="layui-form-label">作物种类</label>
                 <div class="layui-input-inline">
-                    <select name="quiz1">
-                        <option value="">请选择分类</option>
+                    <select lay-filter="cropClassId" id="cropClassId" name="cropClassId">
                     </select>
                 </div>
                 <div class="layui-input-inline">
-                    <select name="quiz2">
-                        <option value="">请选择作物</option>
+                    <select id="cropItemId" name="cropItemId">
                     </select>
                 </div>
             </div>

+ 1 - 1
src/main/webapp/static/package/publish_task_action.js

@@ -13,7 +13,7 @@ PublishTaskAction.prototype = {
         //     console.log("startStatus is true")
         //     return
         // }
-        layui.tool.dialog2("/task/publish_index","40%","50%",{buttons:["确定","取消"],funs:[
+        layui.tool.dialog2("/task/publish_index","40%","70%",{buttons:["确定","取消"],funs:[
             function(index) {
                     var iframeBody = parent.layer.getChildFrame('body', index);
                     iframeBody.find('#submit').click();