From 00cdca2f95151f37acb25c7d6f330464da354c49 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Tue, 31 Oct 2023 23:23:42 +0800
Subject: [PATCH] 房屋,人员标签查询修改,人员标签数据更新接口新增
---
src/main/java/org/springblade/common/utils/NodeTreeUtil.java | 7 +-
src/main/java/org/springblade/modules/house/service/IHouseholdLabelService.java | 6 ++
src/main/java/org/springblade/modules/house/controller/HouseholdLabelController.java | 12 ++++
src/main/java/org/springblade/modules/label/service/impl/LabelServiceImpl.java | 3
src/main/java/org/springblade/common/node/TreeIntegerNode.java | 49 ++++++++++++++++
src/main/java/org/springblade/modules/label/mapper/LabelMapper.xml | 20 +++++-
src/main/java/org/springblade/modules/label/mapper/LabelMapper.java | 7 ++
src/main/java/org/springblade/modules/house/service/impl/HouseholdLabelServiceImpl.java | 32 ++++++++++
src/main/java/org/springblade/modules/house/service/impl/HouseLabelServiceImpl.java | 8 ++
9 files changed, 135 insertions(+), 9 deletions(-)
diff --git a/src/main/java/org/springblade/common/node/TreeIntegerNode.java b/src/main/java/org/springblade/common/node/TreeIntegerNode.java
new file mode 100644
index 0000000..21b489f
--- /dev/null
+++ b/src/main/java/org/springblade/common/node/TreeIntegerNode.java
@@ -0,0 +1,49 @@
+package org.springblade.common.node;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 视图实体类
+ *
+ * @author zhongrj
+ */
+@Data
+public class TreeIntegerNode implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键ID
+ */
+ @JsonSerialize(using = ToStringSerializer.class)
+ private Integer id;
+
+ /**
+ * 名称
+ */
+ private String name;
+
+ /**
+ * 父节点ID
+ */
+ @JsonSerialize(using = ToStringSerializer.class)
+ private Integer parentId;
+
+ /**
+ * 子孙节点
+ */
+ private List<TreeIntegerNode> children = new ArrayList<>();
+
+ /**
+ * 是否有子孙节点
+ */
+ @JsonInclude(JsonInclude.Include.NON_EMPTY)
+ private Boolean hasChildren;
+}
diff --git a/src/main/java/org/springblade/common/utils/NodeTreeUtil.java b/src/main/java/org/springblade/common/utils/NodeTreeUtil.java
index 3f6d777..a17981b 100644
--- a/src/main/java/org/springblade/common/utils/NodeTreeUtil.java
+++ b/src/main/java/org/springblade/common/utils/NodeTreeUtil.java
@@ -1,5 +1,6 @@
package org.springblade.common.utils;
+import org.springblade.common.node.TreeIntegerNode;
import org.springblade.common.node.TreeNode;
import java.util.ArrayList;
import java.util.List;
@@ -13,12 +14,12 @@
public class NodeTreeUtil {
/**
- * 警员map 转 tree 组织机构
+ * 树转换
* @param treeMap
* @return
*/
- public static List<TreeNode> getNodeTree(Map<String, TreeNode> treeMap){
- List<TreeNode> tree = new ArrayList<>();
+ public static List<TreeIntegerNode> getNodeTree(Map<Integer, TreeIntegerNode> treeMap){
+ List<TreeIntegerNode> tree = new ArrayList<>();
if (treeMap.size() > 1) {
treeMap.forEach((id, treeNode) -> {
if (treeMap.containsKey(treeNode.getParentId())) {
diff --git a/src/main/java/org/springblade/modules/house/controller/HouseholdLabelController.java b/src/main/java/org/springblade/modules/house/controller/HouseholdLabelController.java
index 3a9e7b7..25db840 100644
--- a/src/main/java/org/springblade/modules/house/controller/HouseholdLabelController.java
+++ b/src/main/java/org/springblade/modules/house/controller/HouseholdLabelController.java
@@ -28,6 +28,7 @@
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.house.entity.HouseLabelEntity;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.modules.house.entity.HouseholdLabelEntity;
@@ -113,6 +114,17 @@
}
/**
+ * 住户-标签 自定义新增或修改
+ * @param householdLabel
+ * @return
+ */
+ @PostMapping("/saveOrUpdateHouseholdLabel")
+ @ApiOperation(value = "自定义新增或修改", notes = "传入householdLabel")
+ public R saveOrUpdateHouseholdLabel(@Valid @RequestBody HouseholdLabelEntity householdLabel) {
+ return R.status(householdLabelService.saveOrUpdateHouseholdLabel(householdLabel));
+ }
+
+ /**
* 住户-标签 删除
*/
@PostMapping("/remove")
diff --git a/src/main/java/org/springblade/modules/house/service/IHouseholdLabelService.java b/src/main/java/org/springblade/modules/house/service/IHouseholdLabelService.java
index 1453bf4..44adef0 100644
--- a/src/main/java/org/springblade/modules/house/service/IHouseholdLabelService.java
+++ b/src/main/java/org/springblade/modules/house/service/IHouseholdLabelService.java
@@ -42,4 +42,10 @@
*/
IPage<HouseholdLabelVO> selectHouseholdLabelPage(IPage<HouseholdLabelVO> page, HouseholdLabelVO householdLabel);
+ /**
+ * 住户-标签 自定义新增或修改
+ * @param householdLabel
+ * @return
+ */
+ boolean saveOrUpdateHouseholdLabel(HouseholdLabelEntity householdLabel);
}
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 13f6e01..65ae716 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
@@ -23,6 +23,9 @@
import org.springblade.modules.house.mapper.HouseLabelMapper;
import org.springblade.modules.house.service.IHouseLabelService;
import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.modules.label.entity.LabelEntity;
+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;
@@ -34,6 +37,9 @@
*/
@Service
public class HouseLabelServiceImpl extends ServiceImpl<HouseLabelMapper, HouseLabelEntity> implements IHouseLabelService {
+
+ @Autowired
+ private ILabelService labelService;
@Override
public IPage<HouseLabelVO> selectHouseLabelPage(IPage<HouseLabelVO> page, HouseLabelVO houseLabel) {
@@ -48,7 +54,7 @@
@Override
public boolean saveOrUpdateHouseLabel(HouseLabelEntity houseLabel) {
// 查询标签名称
- HouseLabelEntity labelEntity = getById(houseLabel.getLabelId());
+ LabelEntity labelEntity = labelService.getById(houseLabel.getLabelId());
houseLabel.setLabelName(labelEntity.getLabelName());
// 判断同一个房屋同一个标签是否已存在,已存在则更新,不存在则新增
QueryWrapper<HouseLabelEntity> queryWrapper = new QueryWrapper<>();
diff --git a/src/main/java/org/springblade/modules/house/service/impl/HouseholdLabelServiceImpl.java b/src/main/java/org/springblade/modules/house/service/impl/HouseholdLabelServiceImpl.java
index 89c8418..60c9d47 100644
--- a/src/main/java/org/springblade/modules/house/service/impl/HouseholdLabelServiceImpl.java
+++ b/src/main/java/org/springblade/modules/house/service/impl/HouseholdLabelServiceImpl.java
@@ -16,13 +16,18 @@
*/
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.common.node.TreeNode;
+import org.springblade.modules.house.entity.HouseLabelEntity;
import org.springblade.modules.house.entity.HouseholdLabelEntity;
import org.springblade.modules.house.vo.HouseholdLabelVO;
import org.springblade.modules.house.mapper.HouseholdLabelMapper;
import org.springblade.modules.house.service.IHouseholdLabelService;
import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.modules.label.entity.LabelEntity;
+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;
@@ -37,8 +42,35 @@
@Service
public class HouseholdLabelServiceImpl extends ServiceImpl<HouseholdLabelMapper, HouseholdLabelEntity> implements IHouseholdLabelService {
+
+ @Autowired
+ private ILabelService labelService;
+
@Override
public IPage<HouseholdLabelVO> selectHouseholdLabelPage(IPage<HouseholdLabelVO> page, HouseholdLabelVO householdLabel) {
return page.setRecords(baseMapper.selectHouseholdLabelPage(page, householdLabel));
}
+
+ /**
+ * 住户-标签 自定义新增或修改
+ * @param householdLabel
+ * @return
+ */
+ @Override
+ public boolean saveOrUpdateHouseholdLabel(HouseholdLabelEntity householdLabel) {
+ // 查询标签名称
+ LabelEntity labelEntity = labelService.getById(householdLabel.getLabelId());
+ householdLabel.setLabelName(labelEntity.getLabelName());
+ // 判断同一个住户同一个标签是否已存在,已存在则更新,不存在则新增
+ QueryWrapper<HouseholdLabelEntity> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("household_id",householdLabel.getHouseholdId())
+ .eq("label_id",householdLabel.getLabelId());
+ HouseholdLabelEntity one = getOne(queryWrapper);
+ if (null != one){
+ // 更新
+ return updateById(householdLabel);
+ }
+ // 插入
+ return save(householdLabel);
+ }
}
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 99619d6..cd24e5e 100644
--- a/src/main/java/org/springblade/modules/label/mapper/LabelMapper.java
+++ b/src/main/java/org/springblade/modules/label/mapper/LabelMapper.java
@@ -16,12 +16,16 @@
*/
package org.springblade.modules.label.mapper;
+import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;
+import org.springblade.common.node.TreeIntegerNode;
+import org.springblade.common.node.TreeNode;
import org.springblade.modules.label.entity.LabelEntity;
import org.springblade.modules.label.vo.LabelVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List;
+import java.util.Map;
/**
* 标签管理 Mapper 接口
@@ -46,5 +50,6 @@
* @param label
* @return
*/
- List<LabelVO> getLabelList(@Param("label") LabelVO label);
+ @MapKey(value = "id")
+ Map<Integer, TreeIntegerNode> 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 71d276c..5a4273f 100644
--- a/src/main/java/org/springblade/modules/label/mapper/LabelMapper.xml
+++ b/src/main/java/org/springblade/modules/label/mapper/LabelMapper.xml
@@ -8,9 +8,23 @@
</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 id="getLabelList" resultType="org.springblade.common.node.TreeIntegerNode">
+ SELECT
+ jl.id as id,jl.parent_id as parentId,jl.label_name as name
+ FROM
+ (
+ SELECT
+ @ids AS ids,
+ ( SELECT @ids := GROUP_CONCAT( id ) FROM jczz_label WHERE FIND_IN_SET( parent_id, @ids ) ) AS cids
+ FROM
+ jczz_label
+ WHERE
+ @ids IS NOT NULL
+ AND @ids := #{label.parentId}
+ ) id,
+ jczz_label jl
+ WHERE
+ FIND_IN_SET(jl.parent_id,ids)
</select>
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 2877354..e548c07 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
@@ -17,6 +17,7 @@
package org.springblade.modules.label.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.common.utils.NodeTreeUtil;
import org.springblade.modules.label.entity.LabelEntity;
import org.springblade.modules.label.vo.LabelVO;
import org.springblade.modules.label.mapper.LabelMapper;
@@ -46,6 +47,6 @@
*/
@Override
public Object getLabelList(LabelVO label) {
- return baseMapper.getLabelList(label);
+ return NodeTreeUtil.getNodeTree(baseMapper.getLabelList(label));
}
}
--
Gitblit v1.9.3