From 82d747d6ca589fda3d2e8b02a80020e8496b536a Mon Sep 17 00:00:00 2001
From: tangzy <tangzy123456>
Date: Thu, 12 May 2022 16:46:43 +0800
Subject: [PATCH] 地块列表

---
 src/main/java/org/springblade/modules/lang/mapper/LandMapper.java            |   17 ++++
 src/main/java/org/springblade/modules/lang/service/impl/LandServiceImpl.java |   26 ++++++
 src/main/java/org/springblade/modules/lang/controller/LandController.java    |  102 ++++++++++++++++++++++++-
 src/main/java/org/springblade/modules/lang/mapper/LandMapper.xml             |   47 +++++++++++
 src/main/java/org/springblade/modules/lang/service/ILandService.java         |   22 +++++
 5 files changed, 208 insertions(+), 6 deletions(-)

diff --git a/src/main/java/org/springblade/modules/lang/controller/LandController.java b/src/main/java/org/springblade/modules/lang/controller/LandController.java
index 84c4321..8be108d 100644
--- a/src/main/java/org/springblade/modules/lang/controller/LandController.java
+++ b/src/main/java/org/springblade/modules/lang/controller/LandController.java
@@ -16,17 +16,22 @@
  */
 package org.springblade.modules.lang.controller;
 
+import io.lettuce.core.output.DoubleOutput;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import lombok.AllArgsConstructor;
+
 import javax.validation.Valid;
 
+import org.springblade.common.utils.PolyginArea;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.modules.farm.entity.Farm;
+import org.springblade.modules.farm.vo.FarmVO;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.RequestParam;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -34,6 +39,11 @@
 import org.springblade.modules.lang.vo.LandVO;
 import org.springblade.modules.lang.service.ILandService;
 import org.springblade.core.boot.ctrl.BladeController;
+
+import java.awt.geom.Point2D;
+import java.text.DecimalFormat;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * 地块表 控制器
@@ -57,6 +67,15 @@
 	@ApiOperation(value = "详情", notes = "传入land")
 	public R<Land> detail(Land land) {
 		Land detail = landService.getOne(Condition.getQueryWrapper(land));
+		return R.data(detail);
+	}
+
+	/**
+	 * 详情信息(自定义查询)
+	 */
+	@GetMapping("/details")
+	public R<Land> details(LandVO land) {
+		Land detail = landService.getLandInfo(land);
 		return R.data(detail);
 	}
 
@@ -89,7 +108,41 @@
 	@ApiOperationSupport(order = 4)
 	@ApiOperation(value = "新增", notes = "传入land")
 	public R save(@Valid @RequestBody Land land) {
-		return R.status(landService.save(land));
+		String range = land.getLandRange();
+		//坐标转换
+		if (null != land.getLandRange() && !land.getLandRange().equals("")) {
+			//替换逗号为空格
+			String sNull = land.getLandRange().replaceAll(",", " ");
+			//替换分号为逗号
+			String replaceAll = sNull.replaceAll(";", ",");
+			land.setLandRange("'POLYGON((" + replaceAll + "))'");
+		}
+		List<Point2D.Double> points = new ArrayList<Point2D.Double>();
+		double v1;
+		String landRange = range;
+		String[] s1 = landRange.split(";");
+		for (String ss : s1) {
+			String[] temp = ss.split(",");
+			Point2D.Double point = new Point2D.Double(Double.parseDouble(temp[0]),
+				Double.parseDouble(temp[1]));
+			points.add(point);
+		}
+		PolyginArea tp = new PolyginArea();
+		double area = tp.getAreaByxy(points);
+		Integer landUnit = land.getLandUnit();
+		//(0: 亩  1:分  2:平方米
+		if (landUnit == 0) {
+			double v = area * 0.0015;
+			v1 = (double) Math.round(v * 100) / 100;
+		} else if (landUnit == 1) {
+			double v = area * 0.015;
+			v1 = (double) Math.round(v * 100) / 100;
+		} else {
+			v1 = (double) Math.round(area * 100) / 100;
+		}
+		land.setLandArea(String.valueOf(v1));
+		land.setType(1);
+		return R.status(landService.saveLandInfo(land));
 	}
 
 	/**
@@ -99,7 +152,41 @@
 	@ApiOperationSupport(order = 5)
 	@ApiOperation(value = "修改", notes = "传入land")
 	public R update(@Valid @RequestBody Land land) {
-		return R.status(landService.updateById(land));
+		String range = land.getLandRange();
+		//坐标转换
+		if (null != land.getLandRange() && !land.getLandRange().equals("")) {
+			//替换逗号为空格
+			String sNull = land.getLandRange().replaceAll(",", " ");
+			//替换分号为逗号
+			String replaceAll = sNull.replaceAll(";", ",");
+			land.setLandRange("'POLYGON((" + replaceAll + "))'");
+		}
+		List<Point2D.Double> points = new ArrayList<Point2D.Double>();
+		double v1;
+		String landRange = range;
+		String[] s1 = landRange.split(";");
+		for (String ss : s1) {
+			String[] temp = ss.split(",");
+			Point2D.Double point = new Point2D.Double(Double.parseDouble(temp[0]),
+				Double.parseDouble(temp[1]));
+			points.add(point);
+		}
+		PolyginArea tp = new PolyginArea();
+		double area = tp.getAreaByxy(points);
+		Integer landUnit = land.getLandUnit();
+		//(0: 亩  1:分  2:平方米
+		if (landUnit == 0) {
+			double v = area * 0.0015;
+			v1 = (double) Math.round(v * 100) / 100;
+		} else if (landUnit == 1) {
+			double v = area * 0.015;
+			v1 = (double) Math.round(v * 100) / 100;
+		} else {
+			v1 = (double) Math.round(area * 100) / 100;
+		}
+		land.setLandArea(String.valueOf(v1));
+		land.setType(1);
+		return R.status(landService.updateLandById(land));
 	}
 
 	/**
@@ -112,7 +199,7 @@
 		return R.status(landService.saveOrUpdate(land));
 	}
 
-	
+
 	/**
 	 * 删除 地块表
 	 */
@@ -123,5 +210,12 @@
 		return R.status(landService.deleteLogic(Func.toLongList(ids)));
 	}
 
-	
+	/**
+	 * 地块列表
+	 */
+	@GetMapping("/selectLandList")
+	public R selectLandList(String userid) {
+		return R.data(landService.selectLandList(userid));
+	}
+
 }
diff --git a/src/main/java/org/springblade/modules/lang/mapper/LandMapper.java b/src/main/java/org/springblade/modules/lang/mapper/LandMapper.java
index 1808368..b306b83 100644
--- a/src/main/java/org/springblade/modules/lang/mapper/LandMapper.java
+++ b/src/main/java/org/springblade/modules/lang/mapper/LandMapper.java
@@ -16,6 +16,9 @@
  */
 package org.springblade.modules.lang.mapper;
 
+import org.apache.ibatis.annotations.Param;
+import org.springblade.modules.farm.entity.Farm;
+import org.springblade.modules.farm.vo.FarmVO;
 import org.springblade.modules.lang.entity.Land;
 import org.springblade.modules.lang.vo.LandVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -38,5 +41,17 @@
 	 * @return
 	 */
 	List<LandVO> selectLandPage(IPage page, LandVO land);
-
+	boolean saveLandInfo(@Param("land") Land land);
+	/**
+	 * 详情信息(自定义查询)
+	 * @return
+	 */
+	Land getLandInfo(@Param("land") LandVO land);
+	/**
+	 * 更新地块信息
+	 * @param farm
+	 * @return
+	 */
+	int updateLandById(@Param("land") Land land);
+	List selectLandList(String userid);
 }
diff --git a/src/main/java/org/springblade/modules/lang/mapper/LandMapper.xml b/src/main/java/org/springblade/modules/lang/mapper/LandMapper.xml
index 2793936..7bf73dd 100644
--- a/src/main/java/org/springblade/modules/lang/mapper/LandMapper.xml
+++ b/src/main/java/org/springblade/modules/lang/mapper/LandMapper.xml
@@ -16,7 +16,52 @@
 
 
     <select id="selectLandPage" resultMap="landResultMap">
-        select * from sys_land where is_deleted = 0
+        select *
+        from sys_land
+        where is_deleted = 0
+    </select>
+
+    <insert id="saveLandInfo">
+        insert into sys_land
+        (user_id,land_name,land_type,land_area,land_range,type,land_unit)
+        values
+        (#{land.userId},#{land.landName},#{land.landType},#{land.landArea},
+        <if test="land.landRange!=null and land.landRange!=''">
+            ST_GeomFromText(${land.landRange}),
+        </if>
+        #{land.type},#{land.landUnit})
+    </insert>
+
+    <!--详情信息(自定义查询)-->
+    <select id="getLandInfo" resultType="org.springblade.modules.lang.vo.LandVO">
+        select user_id,
+               land_name,
+               land_type,
+               land_area,
+               ST_ASTEXT(land_range) as landRange,
+               type,
+               land_unit
+        from sys_land
+        where 1 = 1 and is_deleted = 0
+          and id = #{land.id}
+    </select>
+
+    <!--自定义修改电子围栏数据-->
+    <update id="updateLandById">
+        update sys_land set user_id = #{land.userId},
+        land_name = #{land.landName},
+        land_type = #{land.landType},
+        land_area = #{land.landArea},
+        <if test="land.landRange!=null and land.landRange!=''">
+            land_range = ST_GeomFromText(${land.landRange}),
+        </if>
+        type = #{land.type},
+        land_unit = #{land.landUnit},
+        where id = #{land.id}
+    </update>
+
+    <select id="selectLandList" resultType="java.util.HashMap">
+      select id,land_name as landName from sys_land where user_id=#{userid} and is_deleted = 0
     </select>
 
 </mapper>
diff --git a/src/main/java/org/springblade/modules/lang/service/ILandService.java b/src/main/java/org/springblade/modules/lang/service/ILandService.java
index 4ace97d..1fd7099 100644
--- a/src/main/java/org/springblade/modules/lang/service/ILandService.java
+++ b/src/main/java/org/springblade/modules/lang/service/ILandService.java
@@ -16,10 +16,14 @@
  */
 package org.springblade.modules.lang.service;
 
+import org.apache.ibatis.annotations.Param;
+import org.springblade.modules.farm.entity.Farm;
 import org.springblade.modules.lang.entity.Land;
 import org.springblade.modules.lang.vo.LandVO;
 import org.springblade.core.mp.base.BaseService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+
+import java.util.List;
 
 /**
  * 地块表 服务类
@@ -37,5 +41,23 @@
 	 * @return
 	 */
 	IPage<LandVO> selectLandPage(IPage<LandVO> page, LandVO land);
+	boolean saveLandInfo(Land land);
+	/**
+	 * 详情信息(自定义查询)
+	 * @return
+	 */
+	Land getLandInfo(LandVO land);
+	/**
+	 * 更新地块信息
+	 * @param farm
+	 * @return
+	 */
+	boolean updateLandById(Land land);
 
+	/**
+	 * 地块列表
+	 * @param userid
+	 * @return
+	 */
+	List selectLandList(String userid);
 }
diff --git a/src/main/java/org/springblade/modules/lang/service/impl/LandServiceImpl.java b/src/main/java/org/springblade/modules/lang/service/impl/LandServiceImpl.java
index 4c83617..8b13d64 100644
--- a/src/main/java/org/springblade/modules/lang/service/impl/LandServiceImpl.java
+++ b/src/main/java/org/springblade/modules/lang/service/impl/LandServiceImpl.java
@@ -24,6 +24,8 @@
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
+import java.util.List;
+
 /**
  * 地块表 服务实现类
  *
@@ -38,4 +40,28 @@
 		return page.setRecords(baseMapper.selectLandPage(page, land));
 	}
 
+	@Override
+	public boolean saveLandInfo(Land land) {
+		return baseMapper.saveLandInfo(land);
+	}
+
+	@Override
+	public Land getLandInfo(LandVO land) {
+		return baseMapper.getLandInfo(land);
+	}
+
+	@Override
+	public boolean updateLandById(Land land) {
+		int i = baseMapper.updateLandById(land);
+		if (i > 0) {
+			return true;
+		}
+		return false;
+	}
+
+	@Override
+	public List selectLandList(String userid) {
+		return baseMapper.selectLandList(userid);
+	}
+
 }

--
Gitblit v1.9.3