linwe
2023-12-23 eca6534ed2558167ebc5b01d3aecc2c3345832cd
Merge remote-tracking branch 'origin/master'
3 files modified
60 ■■■■■ changed files
src/main/java/org/springblade/modules/label/mapper/LabelMapper.java 8 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/label/mapper/LabelMapper.xml 34 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/label/service/impl/LabelServiceImpl.java 18 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/label/mapper/LabelMapper.java
@@ -54,4 +54,12 @@
    @MapKey(value = "id")
    Map<Integer, TreeIntegerNode> getLabelTreeList(@Param("label") LabelVO label);
    /**
     * 查询子集标签集合
     * @param list
     * @return
     */
    @MapKey(value = "id")
    Map<Integer, TreeIntegerNode> getChildrenLabelList(@Param("list") List<Integer> list);
}
src/main/java/org/springblade/modules/label/mapper/LabelMapper.xml
@@ -30,10 +30,40 @@
    <!--标签查询,按父id查询下级-->
    <select id="getLabelList" resultType="org.springblade.common.node.TreeIntegerNode">
        SELECT
            jl.id as id,jl.parent_id as parentId,jl.label_name as name
            jl.id as id,jl.parent_id as parentId,jl.label_name as name,
            (
                SELECT
                    CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
                FROM
                    jczz_label
                WHERE
                    parent_id = jl.id and is_deleted = 0
            ) AS hasChildren
        FROM
         jczz_label jl
        where parent_id = #{label.parentId}
        where is_deleted = 0
        and parent_id = #{label.parentId}
    </select>
    <!--标签查询,按父id查询下级-->
    <select id="getChildrenLabelList" resultType="org.springblade.common.node.TreeIntegerNode">
        SELECT
            jl.id as id,jl.parent_id as parentId,jl.label_name as name,
            (
                SELECT
                    CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
                FROM
                    jczz_label
                WHERE
                    parent_id = jl.id and is_deleted = 0
            ) AS hasChildren
        FROM
         jczz_label jl
        where is_deleted = 0
        and parent_id in
        <foreach collection="list" separator="," item="id" open="(" close=")">
            #{id}
        </foreach>
    </select>
src/main/java/org/springblade/modules/label/service/impl/LabelServiceImpl.java
@@ -26,6 +26,7 @@
import org.springblade.modules.label.vo.LabelVO;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -50,7 +51,22 @@
     */
    @Override
    public Object getLabelList(LabelVO label) {
        return NodeTreeUtil.getNodeTree(baseMapper.getLabelList(label));
        Map<Integer, TreeIntegerNode> labelList = baseMapper.getLabelList(label);
        List<Integer> list = new ArrayList<>();
        // 遍历
        labelList.forEach((id, treeNode) -> {
            if (treeNode.getHasChildren()){
                list.add(id);
            }
        });
        if (list.size()>0) {
            // 查询子集
            Map<Integer, TreeIntegerNode> childrenLabelList = baseMapper.getChildrenLabelList(list);
            // 合并集合
            labelList.putAll(childrenLabelList);
        }
        // 处理并返回
        return NodeTreeUtil.getNodeTree(labelList);
    }
    @Override