From 85b366e87d9fc91b638ff592752b9f6f36364f3f Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Tue, 31 Oct 2023 21:15:32 +0800
Subject: [PATCH] 房屋查询,更新,标签操作相关接口新增

---
 src/main/java/org/springblade/modules/label/mapper/LabelMapper.xml                  |    6 ++
 src/main/java/org/springblade/modules/house/service/IHouseService.java              |   12 ++++
 src/main/java/org/springblade/modules/house/controller/HouseController.java         |   24 ++++++++
 src/main/java/org/springblade/modules/house/vo/HouseVO.java                         |    4 +
 src/main/java/org/springblade/modules/house/mapper/HouseMapper.xml                  |   22 +++++++
 src/main/java/org/springblade/modules/house/service/impl/HouseLabelServiceImpl.java |   24 +++++++
 src/main/java/org/springblade/modules/label/service/impl/LabelServiceImpl.java      |   10 +++
 src/main/java/org/springblade/modules/house/controller/HouseLabelController.java    |   11 +++
 src/main/java/org/springblade/modules/house/service/impl/HouseServiceImpl.java      |   30 ++++++++++
 src/main/java/org/springblade/modules/label/service/ILabelService.java              |    7 ++
 src/main/java/org/springblade/modules/label/controller/LabelController.java         |   10 +++
 src/main/java/org/springblade/modules/house/mapper/HouseMapper.java                 |    8 ++
 src/main/java/org/springblade/modules/label/mapper/LabelMapper.java                 |    6 ++
 src/main/java/org/springblade/modules/house/service/IHouseLabelService.java         |    6 ++
 14 files changed, 175 insertions(+), 5 deletions(-)

diff --git a/src/main/java/org/springblade/modules/house/controller/HouseController.java b/src/main/java/org/springblade/modules/house/controller/HouseController.java
index 5e10d91..501676a 100644
--- a/src/main/java/org/springblade/modules/house/controller/HouseController.java
+++ b/src/main/java/org/springblade/modules/house/controller/HouseController.java
@@ -60,6 +60,19 @@
 		HouseEntity detail = houseService.getOne(Condition.getQueryWrapper(house));
 		return R.data(HouseWrapper.build().entityVO(detail));
 	}
+
+	/**
+	 * 房屋自定义详情查询
+	 * @param house
+	 * @return
+	 */
+	@GetMapping("/getHouseDetail")
+	@ApiOperation(value = "房屋自定义详情查询", notes = "传入house")
+	public R<HouseVO> getHouseDetail(HouseVO house) {
+		HouseVO detail = houseService.getHouseDetail(house);
+		return R.data(detail);
+	}
+
 	/**
 	 * 房屋 分页
 	 */
@@ -113,6 +126,17 @@
 	}
 
 	/**
+	 * 房屋自定义新增或修改
+	 * @param house
+	 * @return
+	 */
+	@PostMapping("/saveOrUpdateHouse")
+	@ApiOperation(value = "新增或修改", notes = "传入house")
+	public R saveOrUpdateHouse(@RequestBody HouseEntity house) {
+		return R.status(houseService.saveOrUpdateHouse(house));
+	}
+
+	/**
 	 * 房屋 删除
 	 */
 	@PostMapping("/remove")
diff --git a/src/main/java/org/springblade/modules/house/controller/HouseLabelController.java b/src/main/java/org/springblade/modules/house/controller/HouseLabelController.java
index 22eb415..0b1a16b 100644
--- a/src/main/java/org/springblade/modules/house/controller/HouseLabelController.java
+++ b/src/main/java/org/springblade/modules/house/controller/HouseLabelController.java
@@ -113,6 +113,17 @@
 	}
 
 	/**
+	 * 房屋-标签 自定义新增或修改
+	 * @param houseLabel
+	 * @return
+	 */
+	@PostMapping("/saveOrUpdateHouseLabel")
+	@ApiOperation(value = "自定义新增或修改", notes = "传入houseLabel")
+	public R saveOrUpdateHouseLabel(@Valid @RequestBody HouseLabelEntity houseLabel) {
+		return R.status(houseLabelService.saveOrUpdateHouseLabel(houseLabel));
+	}
+
+	/**
 	 * 房屋-标签 删除
 	 */
 	@PostMapping("/remove")
diff --git a/src/main/java/org/springblade/modules/house/mapper/HouseMapper.java b/src/main/java/org/springblade/modules/house/mapper/HouseMapper.java
index 178bf76..05b102e 100644
--- a/src/main/java/org/springblade/modules/house/mapper/HouseMapper.java
+++ b/src/main/java/org/springblade/modules/house/mapper/HouseMapper.java
@@ -16,6 +16,7 @@
  */
 package org.springblade.modules.house.mapper;
 
+import org.apache.ibatis.annotations.Param;
 import org.springblade.modules.house.entity.HouseEntity;
 import org.springblade.modules.house.vo.HouseVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -39,5 +40,10 @@
 	 */
 	List<HouseVO> selectHousePage(IPage page, HouseVO house);
 
-
+	/**
+	 * 房屋自定义详情查询
+	 * @param house
+	 * @return
+	 */
+    HouseVO getHouseDetail(@Param("house") HouseVO house);
 }
diff --git a/src/main/java/org/springblade/modules/house/mapper/HouseMapper.xml b/src/main/java/org/springblade/modules/house/mapper/HouseMapper.xml
index 2328145..370bfd5 100644
--- a/src/main/java/org/springblade/modules/house/mapper/HouseMapper.xml
+++ b/src/main/java/org/springblade/modules/house/mapper/HouseMapper.xml
@@ -20,17 +20,37 @@
         <result column="building_no" property="buildingNo"/>
         <result column="image_urls" property="imageUrls"/>
         <result column="create_user" property="createUser"/>
-        <result column="created_time" property="createdTime"/>
+        <result column="created_time" property="createTime"/>
         <result column="update_user" property="updateUser"/>
         <result column="update_time" property="updateTime"/>
         <result column="remark" property="remark"/>
         <result column="is_deleted" property="isDeleted"/>
     </resultMap>
 
+    <!--房屋详情-->
+    <resultMap id="houseAndHouseLabelMap" type="org.springblade.modules.house.vo.HouseVO" autoMapping="true">
+        <id property="id" column="id"/>
+        <collection property="houseLabelVOList" javaType="java.util.List"
+                    ofType="org.springblade.modules.house.vo.HouseLabelVO" autoMapping="true">
+            <id property="id" column="cid"/>
+        </collection>
+    </resultMap>
 
+    <!--自定义分页列表-->
     <select id="selectHousePage" resultMap="houseResultMap">
         select * from jczz_house where is_deleted = 0
     </select>
 
+    <!--房屋自定义详情查询-->
+    <select id="getHouseDetail" resultMap="houseAndHouseLabelMap">
+        select
+        jh.*,
+        jhl.id as cid,jhl.*
+        from jczz_house jh
+        left join jczz_house_label jhl on jh.house_code = jhl.house_code
+        where jh.is_deleted = 0
+        and jh.house_code = #{house.houseCode}
+    </select>
+
 
 </mapper>
diff --git a/src/main/java/org/springblade/modules/house/service/IHouseLabelService.java b/src/main/java/org/springblade/modules/house/service/IHouseLabelService.java
index 9194483..a64fb2b 100644
--- a/src/main/java/org/springblade/modules/house/service/IHouseLabelService.java
+++ b/src/main/java/org/springblade/modules/house/service/IHouseLabelService.java
@@ -40,4 +40,10 @@
 	IPage<HouseLabelVO> selectHouseLabelPage(IPage<HouseLabelVO> page, HouseLabelVO houseLabel);
 
 
+	/**
+	 * 房屋-标签 自定义新增或修改
+	 * @param houseLabel
+	 * @return
+	 */
+    boolean saveOrUpdateHouseLabel(HouseLabelEntity houseLabel);
 }
diff --git a/src/main/java/org/springblade/modules/house/service/IHouseService.java b/src/main/java/org/springblade/modules/house/service/IHouseService.java
index c512478..448f812 100644
--- a/src/main/java/org/springblade/modules/house/service/IHouseService.java
+++ b/src/main/java/org/springblade/modules/house/service/IHouseService.java
@@ -39,5 +39,17 @@
 	 */
 	IPage<HouseVO> selectHousePage(IPage<HouseVO> page, HouseVO house);
 
+	/**
+	 * 房屋自定义详情查询
+	 * @param house
+	 * @return
+	 */
+    HouseVO getHouseDetail(HouseVO house);
 
+	/**
+	 * 房屋自定义新增或修改
+	 * @param house
+	 * @return
+	 */
+	boolean saveOrUpdateHouse(HouseEntity house);
 }
diff --git a/src/main/java/org/springblade/modules/house/service/impl/HouseLabelServiceImpl.java b/src/main/java/org/springblade/modules/house/service/impl/HouseLabelServiceImpl.java
index e3af77f..13f6e01 100644
--- a/src/main/java/org/springblade/modules/house/service/impl/HouseLabelServiceImpl.java
+++ b/src/main/java/org/springblade/modules/house/service/impl/HouseLabelServiceImpl.java
@@ -16,6 +16,7 @@
  */
 package org.springblade.modules.house.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springblade.modules.house.entity.HouseLabelEntity;
 import org.springblade.modules.house.vo.HouseLabelVO;
@@ -39,5 +40,26 @@
 		return page.setRecords(baseMapper.selectHouseLabelPage(page, houseLabel));
 	}
 
-
+	/**
+	 * 房屋-标签 自定义新增或修改
+	 * @param houseLabel
+	 * @return
+	 */
+	@Override
+	public boolean saveOrUpdateHouseLabel(HouseLabelEntity houseLabel) {
+		// 查询标签名称
+		HouseLabelEntity labelEntity = getById(houseLabel.getLabelId());
+		houseLabel.setLabelName(labelEntity.getLabelName());
+		// 判断同一个房屋同一个标签是否已存在,已存在则更新,不存在则新增
+		QueryWrapper<HouseLabelEntity> queryWrapper = new QueryWrapper<>();
+		queryWrapper.eq("house_code",houseLabel.getHouseCode())
+					.eq("label_id",houseLabel.getLabelId());
+		HouseLabelEntity one = getOne(queryWrapper);
+		if (null != one){
+			// 更新
+			return updateById(houseLabel);
+		}
+		// 插入
+		return save(houseLabel);
+	}
 }
diff --git a/src/main/java/org/springblade/modules/house/service/impl/HouseServiceImpl.java b/src/main/java/org/springblade/modules/house/service/impl/HouseServiceImpl.java
index 707674e..a489ff1 100644
--- a/src/main/java/org/springblade/modules/house/service/impl/HouseServiceImpl.java
+++ b/src/main/java/org/springblade/modules/house/service/impl/HouseServiceImpl.java
@@ -16,12 +16,15 @@
  */
 package org.springblade.modules.house.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springblade.modules.house.entity.HouseEntity;
 import org.springblade.modules.house.vo.HouseVO;
 import org.springblade.modules.house.mapper.HouseMapper;
 import org.springblade.modules.house.service.IHouseService;
 import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.modules.label.service.ILabelService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
@@ -39,5 +42,32 @@
 		return page.setRecords(baseMapper.selectHousePage(page, house));
 	}
 
+	/**
+	 * 房屋自定义详情查询
+	 * @param house
+	 * @return
+	 */
+	@Override
+	public HouseVO getHouseDetail(HouseVO house) {
+		return baseMapper.getHouseDetail(house);
+	}
 
+	/**
+	 * 房屋自定义新增或修改
+	 * @param house
+	 * @return
+	 */
+	@Override
+	public boolean saveOrUpdateHouse(HouseEntity house) {
+		// 查询是否已存在房屋数据
+		QueryWrapper<HouseEntity> wrapper = new QueryWrapper<>();
+		wrapper.eq("house_code",house.getHouseCode());
+		HouseEntity one = getOne(wrapper);
+		if (null != one){
+			// 更新数据
+			return updateById(house);
+		}
+		//插入数据
+		return save(house);
+	}
 }
diff --git a/src/main/java/org/springblade/modules/house/vo/HouseVO.java b/src/main/java/org/springblade/modules/house/vo/HouseVO.java
index 8f5a0fb..69a7b1a 100644
--- a/src/main/java/org/springblade/modules/house/vo/HouseVO.java
+++ b/src/main/java/org/springblade/modules/house/vo/HouseVO.java
@@ -21,6 +21,9 @@
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * 房屋 视图实体类
  *
@@ -32,4 +35,5 @@
 public class HouseVO extends HouseEntity {
 	private static final long serialVersionUID = 1L;
 
+	private List<HouseLabelVO> houseLabelVOList = new ArrayList<>();
 }
diff --git a/src/main/java/org/springblade/modules/label/controller/LabelController.java b/src/main/java/org/springblade/modules/label/controller/LabelController.java
index f95231e..1667af1 100644
--- a/src/main/java/org/springblade/modules/label/controller/LabelController.java
+++ b/src/main/java/org/springblade/modules/label/controller/LabelController.java
@@ -82,6 +82,16 @@
 	}
 
 	/**
+	 * 标签查询,按父id查询下级
+	 * @param label
+	 * @return
+	 */
+	@GetMapping("/getLabelList")
+	public R getLabelList(LabelVO label) {
+		return R.data(labelService.getLabelList(label));
+	}
+
+	/**
 	 * 标签管理 新增
 	 */
 	@PostMapping("/save")
diff --git a/src/main/java/org/springblade/modules/label/mapper/LabelMapper.java b/src/main/java/org/springblade/modules/label/mapper/LabelMapper.java
index c3417ed..99619d6 100644
--- a/src/main/java/org/springblade/modules/label/mapper/LabelMapper.java
+++ b/src/main/java/org/springblade/modules/label/mapper/LabelMapper.java
@@ -41,4 +41,10 @@
 	List<LabelVO> selectLabelPage(IPage page,@Param("label") LabelVO label);
 
 
+	/**
+	 * 标签查询,按父id查询下级
+	 * @param label
+	 * @return
+	 */
+    List<LabelVO> getLabelList(@Param("label") LabelVO label);
 }
diff --git a/src/main/java/org/springblade/modules/label/mapper/LabelMapper.xml b/src/main/java/org/springblade/modules/label/mapper/LabelMapper.xml
index 0bb9d64..71d276c 100644
--- a/src/main/java/org/springblade/modules/label/mapper/LabelMapper.xml
+++ b/src/main/java/org/springblade/modules/label/mapper/LabelMapper.xml
@@ -7,5 +7,11 @@
         select * from jczz_label where 1=1
     </select>
 
+    <!--标签查询,按父id查询下级-->
+    <select id="getLabelList" resultType="org.springblade.modules.label.vo.LabelVO">
+        select * from jczz_label where is_deleted = 0
+        and parent_id = #{label.parentId}
+    </select>
+
 
 </mapper>
diff --git a/src/main/java/org/springblade/modules/label/service/ILabelService.java b/src/main/java/org/springblade/modules/label/service/ILabelService.java
index ec2e177..72c794b 100644
--- a/src/main/java/org/springblade/modules/label/service/ILabelService.java
+++ b/src/main/java/org/springblade/modules/label/service/ILabelService.java
@@ -39,5 +39,10 @@
 	 */
 	IPage<LabelVO> selectLabelPage(IPage<LabelVO> page, LabelVO label);
 
-
+	/**
+	 * 标签查询,按父id查询下级
+	 * @param label
+	 * @return
+	 */
+    Object getLabelList(LabelVO label);
 }
diff --git a/src/main/java/org/springblade/modules/label/service/impl/LabelServiceImpl.java b/src/main/java/org/springblade/modules/label/service/impl/LabelServiceImpl.java
index 404ffb2..2877354 100644
--- a/src/main/java/org/springblade/modules/label/service/impl/LabelServiceImpl.java
+++ b/src/main/java/org/springblade/modules/label/service/impl/LabelServiceImpl.java
@@ -39,5 +39,13 @@
 		return page.setRecords(baseMapper.selectLabelPage(page, label));
 	}
 
-
+	/**
+	 * 标签查询,按父id查询下级
+	 * @param label
+	 * @return
+	 */
+	@Override
+	public Object getLabelList(LabelVO label) {
+		return baseMapper.getLabelList(label);
+	}
 }

--
Gitblit v1.9.3