From 879fe6b588b87e4266abf3cfbafba406fd06c34c Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Fri, 22 Jul 2022 09:51:20 +0800
Subject: [PATCH] 全景表添加农场id,一个农场对应一个全景

---
 src/main/java/org/springblade/modules/panorama/service/IPanoramaService.java         |    6 ++++++
 src/main/java/org/springblade/modules/panorama/vo/PanoramaVO.java                    |    5 ++++-
 src/main/java/org/springblade/modules/panorama/mapper/PanoramaMapper.xml             |   13 +++++++++++--
 src/main/java/org/springblade/modules/panorama/mapper/PanoramaMapper.java            |    7 +++++++
 src/main/java/org/springblade/modules/panorama/entity/Panorama.java                  |    2 +-
 src/main/java/org/springblade/modules/panorama/controller/PanoramaController.java    |   10 +++++++---
 src/main/java/org/springblade/modules/panorama/service/impl/PanoramaServiceImpl.java |   12 ++++++++++++
 7 files changed, 48 insertions(+), 7 deletions(-)

diff --git a/src/main/java/org/springblade/modules/panorama/controller/PanoramaController.java b/src/main/java/org/springblade/modules/panorama/controller/PanoramaController.java
index 40c9430..333a106 100644
--- a/src/main/java/org/springblade/modules/panorama/controller/PanoramaController.java
+++ b/src/main/java/org/springblade/modules/panorama/controller/PanoramaController.java
@@ -89,7 +89,11 @@
 	@ApiOperationSupport(order = 4)
 	@ApiOperation(value = "新增", notes = "传入panorama")
 	public R save(@Valid @RequestBody Panorama panorama) {
-		return R.status(panoramaService.save(panorama));
+		if(panoramaService.selectOne(panorama.getFarmId())) {
+			return R.status(panoramaService.save(panorama));
+		}else {
+			return R.fail("该农场全景已存在");
+		}
 	}
 
 	/**
@@ -112,7 +116,7 @@
 		return R.status(panoramaService.saveOrUpdate(panorama));
 	}
 
-	
+
 	/**
 	 * 删除 全景
 	 */
@@ -123,5 +127,5 @@
 		return R.status(panoramaService.deleteLogic(Func.toLongList(ids)));
 	}
 
-	
+
 }
diff --git a/src/main/java/org/springblade/modules/panorama/entity/Panorama.java b/src/main/java/org/springblade/modules/panorama/entity/Panorama.java
index f9599a6..1d76741 100644
--- a/src/main/java/org/springblade/modules/panorama/entity/Panorama.java
+++ b/src/main/java/org/springblade/modules/panorama/entity/Panorama.java
@@ -40,6 +40,6 @@
 	private String jd;
 	private String wd;
 	private String addressName;
-
+	private int farmId;
 
 }
diff --git a/src/main/java/org/springblade/modules/panorama/mapper/PanoramaMapper.java b/src/main/java/org/springblade/modules/panorama/mapper/PanoramaMapper.java
index 0e13b98..d04b132 100644
--- a/src/main/java/org/springblade/modules/panorama/mapper/PanoramaMapper.java
+++ b/src/main/java/org/springblade/modules/panorama/mapper/PanoramaMapper.java
@@ -16,6 +16,7 @@
  */
 package org.springblade.modules.panorama.mapper;
 
+import org.apache.ibatis.annotations.Param;
 import org.springblade.modules.panorama.entity.Panorama;
 import org.springblade.modules.panorama.vo.PanoramaVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -39,4 +40,10 @@
 	 */
 	List<PanoramaVO> selectPanoramaPage(IPage page, PanoramaVO panorama);
 
+	/**
+	 * 判断是否存在相同农场
+	 * @param farmId
+	 * @return
+	 */
+	List<Panorama> getFarmList(@Param("farmId") int farmId);
 }
diff --git a/src/main/java/org/springblade/modules/panorama/mapper/PanoramaMapper.xml b/src/main/java/org/springblade/modules/panorama/mapper/PanoramaMapper.xml
index 9725c46..fc2f7c2 100644
--- a/src/main/java/org/springblade/modules/panorama/mapper/PanoramaMapper.xml
+++ b/src/main/java/org/springblade/modules/panorama/mapper/PanoramaMapper.xml
@@ -3,7 +3,7 @@
 <mapper namespace="org.springblade.modules.panorama.mapper.PanoramaMapper">
 
     <!-- 通用查询映射结果 -->
-    <resultMap id="panoramaResultMap" type="org.springblade.modules.panorama.entity.Panorama">
+    <resultMap id="panoramaResultMap" type="org.springblade.modules.panorama.vo.PanoramaVO">
         <result column="id" property="id"/>
         <result column="create_user" property="createUser"/>
         <result column="create_dept" property="createDept"/>
@@ -17,11 +17,20 @@
         <result column="jd" property="jd"/>
         <result column="wd" property="wd"/>
         <result column="address_name" property="addressName"/>
+        <result column="farm_name" property="farmName"/>
+        <result column="farm_id" property="farmId"/>
     </resultMap>
 
 
     <select id="selectPanoramaPage" resultMap="panoramaResultMap">
-        select * from sys_panorama where is_deleted = 0
+        select panorama.*,farm.farm_name
+        from sys_panorama panorama
+        LEFT JOIN sys_farm farm ON panorama.farm_id = farm.id
+        where is_deleted = 0
+    </select>
+
+    <select id="getFarmList" resultType="org.springblade.modules.panorama.entity.Panorama">
+        select * from sys_panorama where farm_id = #{farmId}
     </select>
 
 </mapper>
diff --git a/src/main/java/org/springblade/modules/panorama/service/IPanoramaService.java b/src/main/java/org/springblade/modules/panorama/service/IPanoramaService.java
index 6753ca6..e42bae5 100644
--- a/src/main/java/org/springblade/modules/panorama/service/IPanoramaService.java
+++ b/src/main/java/org/springblade/modules/panorama/service/IPanoramaService.java
@@ -38,4 +38,10 @@
 	 */
 	IPage<PanoramaVO> selectPanoramaPage(IPage<PanoramaVO> page, PanoramaVO panorama);
 
+	/**
+	 * 判断是否存在相同农场
+	 * @param farmId
+	 * @return
+	 */
+	boolean selectOne(int farmId);
 }
diff --git a/src/main/java/org/springblade/modules/panorama/service/impl/PanoramaServiceImpl.java b/src/main/java/org/springblade/modules/panorama/service/impl/PanoramaServiceImpl.java
index 0f280a8..820913e 100644
--- a/src/main/java/org/springblade/modules/panorama/service/impl/PanoramaServiceImpl.java
+++ b/src/main/java/org/springblade/modules/panorama/service/impl/PanoramaServiceImpl.java
@@ -24,6 +24,8 @@
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
+import java.util.List;
+
 /**
  * 全景 服务实现类
  *
@@ -38,4 +40,14 @@
 		return page.setRecords(baseMapper.selectPanoramaPage(page, panorama));
 	}
 
+	@Override
+	public boolean selectOne(int farmId) {
+		List<Panorama> list = baseMapper.getFarmList(farmId);
+		if (list.size()>0){
+			return false;
+		}else {
+			return true;
+		}
+	}
+
 }
diff --git a/src/main/java/org/springblade/modules/panorama/vo/PanoramaVO.java b/src/main/java/org/springblade/modules/panorama/vo/PanoramaVO.java
index 491a8f1..de94f1b 100644
--- a/src/main/java/org/springblade/modules/panorama/vo/PanoramaVO.java
+++ b/src/main/java/org/springblade/modules/panorama/vo/PanoramaVO.java
@@ -30,5 +30,8 @@
 @EqualsAndHashCode(callSuper = true)
 public class PanoramaVO extends Panorama {
 	private static final long serialVersionUID = 1L;
-
+	/**
+	 * 农场名称
+	 */
+	String farmName;
 }

--
Gitblit v1.9.3