From 9035f78fbcd60c452b5e37e5687813c35e9c4ff2 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Tue, 05 Jul 2022 10:21:23 +0800 Subject: [PATCH] Merge branch 'master' of http://120.27.238.55:7000/r/farmer-cms --- src/main/java/com/xcong/farmer/cms/core/handler/NavDataParserHandler.java | 93 +++++++++++++++++++++++++++++++++++++--------- 1 files changed, 74 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/xcong/farmer/cms/core/handler/NavDataParserHandler.java b/src/main/java/com/xcong/farmer/cms/core/handler/NavDataParserHandler.java index 74ff8d3..f0c4db8 100644 --- a/src/main/java/com/xcong/farmer/cms/core/handler/NavDataParserHandler.java +++ b/src/main/java/com/xcong/farmer/cms/core/handler/NavDataParserHandler.java @@ -1,8 +1,17 @@ package com.xcong.farmer.cms.core.handler; +import cn.hutool.core.collection.CollUtil; +import com.xcong.farmer.cms.conversion.ColumnConversion; import com.xcong.farmer.cms.core.node.AttrNode; +import com.xcong.farmer.cms.core.tag.data.NavData; +import com.xcong.farmer.cms.core.tag.model.Nav; +import com.xcong.farmer.cms.modules.system.entity.ArticleEntity; +import com.xcong.farmer.cms.modules.system.entity.ColumnEntity; +import com.xcong.farmer.cms.modules.system.mapper.ArticleMapper; import com.xcong.farmer.cms.modules.system.mapper.ColumnMapper; +import com.xcong.farmer.cms.modules.system.vo.AdminColumnVo; import com.xcong.farmer.cms.utils.SpringContextHolder; +import lombok.extern.slf4j.Slf4j; import java.util.ArrayList; import java.util.HashMap; @@ -13,34 +22,80 @@ * @author wzy * @date 2022-06-28 **/ +@Slf4j public class NavDataParserHandler implements DataParserHandler { private ColumnMapper columnMapper = SpringContextHolder.getBean(ColumnMapper.class); - + private ArticleMapper articleMapper = SpringContextHolder.getBean(ArticleMapper.class); + private String BASE_URL = "http://192.168.0.1/"; @Override public void dataParser(AttrNode node) { - System.out.println("NavDataParserHandler"); - List<Map<String, Object>> list = new ArrayList<>(); - Map<String, Object> aa = new HashMap<>(); - aa.put("title", "导航1"); - list.add(aa); + log.info("导航栏解析"); + Long companyId = (Long) node.getSystemDataValue("companyId"); - Map<String, Object> bb = new HashMap<>(); - bb.put("title", "导航2"); + List<ColumnEntity> columns = columnMapper.selectColumnByParentId(0L, companyId); - List<Map<String, Object>> sub = new ArrayList<>(); - Map<String, Object> subBB = new HashMap<>(); - subBB.put("title", "子导航1"); - subBB.put("src", "http://1234"); - sub.add(subBB); - Map<String, Object> subAA = new HashMap<>(); - subAA.put("title", "子导航2"); - subAA.put("src", "http://123455555"); - sub.add(subAA); + if (CollUtil.isEmpty(columns)) { + return; + } - bb.put("children", sub); - list.add(bb); + List<NavData> list = new ArrayList<>(); + for (ColumnEntity column : columns) { + NavData navData = columnToNav(column); + List<ColumnEntity> child = columnMapper.selectColumnByParentId(column.getId(), companyId); + if (CollUtil.isNotEmpty(child)) { + List<NavData> childNavData = columnsToNavs(child); + navData.setChildren(childNavData); + } + list.add(navData); + } +// List<Map<String, Object>> list = new ArrayList<>(); +// Map<String, Object> aa = new HashMap<>(); +// aa.put("title", "导航1"); +// list.add(aa); +// +// Map<String, Object> bb = new HashMap<>(); +// bb.put("title", "导航2"); +// +// List<Map<String, Object>> sub = new ArrayList<>(); +// Map<String, Object> subBB = new HashMap<>(); +// subBB.put("title", "子导航1"); +// subBB.put("src", "http://1234"); +// sub.add(subBB); +// Map<String, Object> subAA = new HashMap<>(); +// subAA.put("title", "子导航2"); +// subAA.put("src", "http://123455555"); +// sub.add(subAA); +// +// bb.put("children", sub); +// list.add(bb); node.setData(list); } + + public List<NavData> columnsToNavs(List<ColumnEntity> columns) { + List<NavData> list = new ArrayList<>(); + for (ColumnEntity column : columns) { + list.add(columnToNav(column)); + } + + return list; + } + + public NavData columnToNav(ColumnEntity column) { + NavData navData = ColumnConversion.INSTANCE.columnToNav(column); + + navData.setUrl(BASE_URL + navData.getCode()); + if (column.getType() == 2) { + if (column.getTargetType() == 1) { + ArticleEntity article = this.articleMapper.selectArticleById(Long.parseLong(column.getTargetUrl())); + navData.setUrl(BASE_URL + article.getColumnCode() + "/" + article.getId() + ".html"); + } else if (column.getTargetType() == 2) { + navData.setUrl(BASE_URL + column.getTargetUrl()); + } else { + navData.setUrl(column.getTargetUrl()); + } + } + return navData; + } } -- Gitblit v1.9.1