zhongrj
2023-10-31 00cdca2f95151f37acb25c7d6f330464da354c49
房屋,人员标签查询修改,人员标签数据更新接口新增
8 files modified
1 files added
144 ■■■■■ changed files
src/main/java/org/springblade/common/node/TreeIntegerNode.java 49 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/common/utils/NodeTreeUtil.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/house/controller/HouseholdLabelController.java 12 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/house/service/IHouseholdLabelService.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/house/service/impl/HouseLabelServiceImpl.java 8 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/house/service/impl/HouseholdLabelServiceImpl.java 32 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/label/mapper/LabelMapper.java 7 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/label/mapper/LabelMapper.xml 20 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/label/service/impl/LabelServiceImpl.java 3 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/common/node/TreeIntegerNode.java
New file
@@ -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;
}
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())) {
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")
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);
}
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<>();
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);
    }
}
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);
}
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>
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));
    }
}