From a508775d5c69e61e605c8f00fc18e70279444869 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 11 Jul 2022 21:49:04 +0800
Subject: [PATCH] add companyCode

---
 src/main/java/com/xcong/farmer/cms/configurations/properties/CmsProperties.java            |   18 ++++
 src/main/java/com/xcong/farmer/cms/modules/core/service/impl/CmsCoreServiceImpl.java       |   26 ++++++
 src/main/java/com/xcong/farmer/cms/common/utils/FileUtils.java                             |    6 +
 src/main/java/com/xcong/farmer/cms/core/handler/ColumnDataParserHandler.java               |    9 +-
 src/main/java/com/xcong/farmer/cms/core/handler/PageDataParserHandler.java                 |    4 
 src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ColumnServiceImpl.java      |   12 +-
 src/main/java/com/xcong/farmer/cms/core/handler/NavDataParserHandler.java                  |   11 +-
 src/main/java/com/xcong/farmer/cms/configurations/CmsConfig.java                           |    7 +
 src/main/java/com/xcong/farmer/cms/core/template/Configuration.java                        |    6 
 src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/CmsTemplateServiceImpl.java |   27 ++++--
 src/main/resources/mapper/WebSetMapper.xml                                                 |   13 +++
 src/main/java/com/xcong/farmer/cms/core/node/Template.java                                 |    2 
 src/main/java/com/xcong/farmer/cms/core/template/TemplateConfiguration.java                |   10 +
 src/main/java/com/xcong/farmer/cms/modules/core/service/ICmsCoreService.java               |    2 
 src/main/java/com/xcong/farmer/cms/core/handler/ArticlesDataParserHandler.java             |   10 +-
 src/main/java/com/xcong/farmer/cms/modules/system/mapper/WebSetMapper.java                 |    4 +
 src/test/java/com/xcong/farmer/cms/KssframeworkApplicationTests.java                       |    2 
 src/main/resources/application.yml                                                         |    6 
 src/main/java/com/xcong/farmer/cms/core/handler/ArticleDataParserHandler.java              |    7 +
 19 files changed, 136 insertions(+), 46 deletions(-)

diff --git a/src/main/java/com/xcong/farmer/cms/common/utils/FileUtils.java b/src/main/java/com/xcong/farmer/cms/common/utils/FileUtils.java
index 32d768d..17c62ad 100644
--- a/src/main/java/com/xcong/farmer/cms/common/utils/FileUtils.java
+++ b/src/main/java/com/xcong/farmer/cms/common/utils/FileUtils.java
@@ -22,10 +22,14 @@
 
     public static String path(String path, String fileName) {
         File file = new File(path);
-        if (!file.isDirectory()){
+        if (file.exists() && !file.isDirectory()){
             return "";
         }
 
+        if (!file.exists()) {
+            file.mkdirs();
+        }
+
         String dir = path(path);
         return dir + fileName;
     }
diff --git a/src/main/java/com/xcong/farmer/cms/configurations/CmsConfig.java b/src/main/java/com/xcong/farmer/cms/configurations/CmsConfig.java
index 8b5873f..5e2896e 100644
--- a/src/main/java/com/xcong/farmer/cms/configurations/CmsConfig.java
+++ b/src/main/java/com/xcong/farmer/cms/configurations/CmsConfig.java
@@ -3,11 +3,15 @@
 import com.xcong.farmer.cms.configurations.properties.CmsProperties;
 import com.xcong.farmer.cms.core.template.TemplateConfiguration;
 import com.xcong.farmer.cms.core.template.TemplateLoader;
+import com.xcong.farmer.cms.modules.system.entity.DataDictionaryCustom;
+import com.xcong.farmer.cms.modules.system.mapper.DataDictionaryCustomMapper;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
+
+import java.util.List;
 
 /**
  * @author wzy
@@ -23,7 +27,8 @@
     @Bean
     public TemplateConfiguration templateConfiguration() {
         log.info("CMS管理系统");
-        TemplateConfiguration cfg = new TemplateConfiguration(cmsProperties.getTemplatePath(), cmsProperties.getStaticPath(), cmsProperties.getOutputPath(), cmsProperties.getBaseUrl(), cmsProperties.getStaticUrl());
+
+        TemplateConfiguration cfg = new TemplateConfiguration(cmsProperties.getTemplatePath(), cmsProperties.getStaticPath(), cmsProperties.getOutputPath(), cmsProperties.getApiUrl(), cmsProperties.getStaticUrl());
         TemplateLoader loader = new TemplateLoader(cfg);
         cfg.templateLoader(loader);
         return cfg;
diff --git a/src/main/java/com/xcong/farmer/cms/configurations/properties/CmsProperties.java b/src/main/java/com/xcong/farmer/cms/configurations/properties/CmsProperties.java
index 22b0fc9..440a51c 100644
--- a/src/main/java/com/xcong/farmer/cms/configurations/properties/CmsProperties.java
+++ b/src/main/java/com/xcong/farmer/cms/configurations/properties/CmsProperties.java
@@ -3,19 +3,35 @@
 import lombok.Data;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 @Data
 @Configuration
 @ConfigurationProperties(prefix = "cms")
 public class CmsProperties {
 
+    /**
+     * 模板保存地址
+     */
     private String templatePath;
 
+    /**
+     * 静态文件保存地址
+     */
     private String staticPath;
 
+    /**
+     * html输出地址
+     */
     private String outputPath;
 
+    /**
+     * 静态文件访问地址
+     */
     private String staticUrl;
 
-    private String baseUrl;
+    /**
+     * api请求地址
+     */
+    private String apiUrl;
 }
diff --git a/src/main/java/com/xcong/farmer/cms/core/handler/ArticleDataParserHandler.java b/src/main/java/com/xcong/farmer/cms/core/handler/ArticleDataParserHandler.java
index f5bc847..1beb535 100644
--- a/src/main/java/com/xcong/farmer/cms/core/handler/ArticleDataParserHandler.java
+++ b/src/main/java/com/xcong/farmer/cms/core/handler/ArticleDataParserHandler.java
@@ -25,10 +25,11 @@
 public class ArticleDataParserHandler implements DataParserHandler {
 
     private final ArticleMapper articleMapper = SpringContextHolder.getBean(ArticleMapper.class);
-    private final CmsProperties cmsProperties = SpringContextHolder.getBean(CmsProperties.class);
     @Override
     public void dataParser(AttrNode node) {
         log.info("######文章解析########");
+        String baseUrl = (String) node.getSystemDataValue("baseUrl");
+
         Article tag = (Article) node.getParam();
         ArticleEntity data = articleMapper.selectById(tag.getId());
 
@@ -40,7 +41,7 @@
             if (prevEntity.getType() == 2) {
                 prev.setUrl(prevEntity.getArticleUrl());
             } else {
-                prev.setUrl(cmsProperties.getBaseUrl() + prevEntity.getPath() + "/" + prevEntity.getId() + ".html");
+                prev.setUrl(baseUrl + prevEntity.getPath() + "/" + prevEntity.getId() + ".html");
             }
 
             articleData.setPrev(prev);
@@ -54,7 +55,7 @@
             if (nextEntity.getType() == 2) {
                 next.setUrl(nextEntity.getArticleUrl());
             } else {
-                next.setUrl(cmsProperties.getBaseUrl() + nextEntity.getPath() + "/" + nextEntity.getId() + ".html");
+                next.setUrl(baseUrl + nextEntity.getPath() + "/" + nextEntity.getId() + ".html");
             }
 
             articleData.setNext(next);
diff --git a/src/main/java/com/xcong/farmer/cms/core/handler/ArticlesDataParserHandler.java b/src/main/java/com/xcong/farmer/cms/core/handler/ArticlesDataParserHandler.java
index 909656a..1c3b8ae 100644
--- a/src/main/java/com/xcong/farmer/cms/core/handler/ArticlesDataParserHandler.java
+++ b/src/main/java/com/xcong/farmer/cms/core/handler/ArticlesDataParserHandler.java
@@ -27,12 +27,14 @@
 public class ArticlesDataParserHandler implements DataParserHandler  {
 
     private ArticleMapper articleMapper = SpringContextHolder.getBean(ArticleMapper.class);
-    private CmsProperties cmsProperties = SpringContextHolder.getBean(CmsProperties.class);
 
     @Override
     public void dataParser(AttrNode node) {
         log.info("文章列表解析");
         Long companyId = (Long) node.getSystemDataValue("companyId");
+        String companyCode = (String) node.getSystemDataValue("companyCode");
+        String baseUrl = (String) node.getSystemDataValue("baseUrl");
+
         Articles param = (Articles) node.getParam();
         ArticleEntity article = new ArticleEntity();
         Page<ArticleEntity> page = new Page<>(Integer.parseInt(param.getPage()), Integer.parseInt(param.getLimit()));
@@ -59,20 +61,20 @@
 
         List<ArticleData> list = new ArrayList<>();
         for (ArticleEntity record : listPage.getRecords()) {
-            ArticleData articleData = entityToData(record);
+            ArticleData articleData = entityToData(record, baseUrl + companyCode);
             list.add(articleData);
         }
 
         node.setData(list);
     }
 
-    public ArticleData entityToData(ArticleEntity article) {
+    public ArticleData entityToData(ArticleEntity article, String baseUrl) {
         ArticleData articleData = ArticleConversion.INSTANCE.entityToData(article);
 
         if (article.getType() == 2) {
             articleData.setUrl(article.getArticleUrl());
         } else {
-            articleData.setUrl(cmsProperties.getBaseUrl() + article.getPath() + "/" + article.getId() + ".html");
+            articleData.setUrl(baseUrl + article.getPath() + "/" + article.getId() + ".html");
         }
 
 
diff --git a/src/main/java/com/xcong/farmer/cms/core/handler/ColumnDataParserHandler.java b/src/main/java/com/xcong/farmer/cms/core/handler/ColumnDataParserHandler.java
index 50ef367..2a2643f 100644
--- a/src/main/java/com/xcong/farmer/cms/core/handler/ColumnDataParserHandler.java
+++ b/src/main/java/com/xcong/farmer/cms/core/handler/ColumnDataParserHandler.java
@@ -26,12 +26,13 @@
 
     private ColumnMapper columnMapper = SpringContextHolder.getBean(ColumnMapper.class);
     private ArticleMapper articleMapper = SpringContextHolder.getBean(ArticleMapper.class);
-    private CmsProperties cmsProperties = SpringContextHolder.getBean(CmsProperties.class);
 
+    private String baseUrl = "";
     @Override
     public void dataParser(AttrNode attrNode) {
         log.info("栏目解析");
         Long companyId = (Long) attrNode.getSystemDataValue("companyId");
+        baseUrl = (String) attrNode.getSystemDataValue("baseUrl");
 
         Column param = (Column) attrNode.getParam();
 
@@ -59,14 +60,14 @@
     public ColumnData columnToData(ColumnEntity column) {
         ColumnData columnData = ColumnConversion.INSTANCE.entityToData(column);
 
-        columnData.setUrl(cmsProperties.getBaseUrl() + column.getPath());
+        columnData.setUrl(baseUrl + column.getPath());
         if (column.getType() == 2) {
             if (column.getTargetType() == 1) {
                 ArticleEntity article = this.articleMapper.selectArticleById(Long.parseLong(column.getTargetUrl()));
-                columnData.setUrl(cmsProperties.getBaseUrl() + article.getPath() + "/" + article.getId() + ".html");
+                columnData.setUrl(baseUrl + article.getPath() + "/" + article.getId() + ".html");
             } else if (column.getTargetType() == 2) {
                 ColumnEntity columnEntity = this.columnMapper.selectByCodeAndCompanyId(column.getTargetUrl(), column.getCompanyId());
-                columnData.setUrl(cmsProperties.getBaseUrl() + columnEntity.getPath());
+                columnData.setUrl(baseUrl + columnEntity.getPath());
             } else {
                 columnData.setUrl(column.getTargetUrl());
             }
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 cac8b9a..fbb19e3 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
@@ -28,12 +28,13 @@
 
     private ColumnMapper columnMapper = SpringContextHolder.getBean(ColumnMapper.class);
     private ArticleMapper articleMapper = SpringContextHolder.getBean(ArticleMapper.class);
-    private CmsProperties cmsProperties = SpringContextHolder.getBean(CmsProperties.class);
 
+    private String baseUrl = "";
     @Override
     public void dataParser(AttrNode node) {
         log.info("导航栏解析");
         Long companyId = (Long) node.getSystemDataValue("companyId");
+        baseUrl = (String) node.getSystemDataValue("baseUrl");
 
         List<ColumnEntity> columns = columnMapper.selectColumnByParentId(0L, companyId, 1);
 
@@ -45,7 +46,7 @@
 
         NavData index = new NavData();
         index.setTitle("首页");
-        index.setUrl(cmsProperties.getBaseUrl());
+        index.setUrl(baseUrl);
         index.setCode("index");
         list.add(index);
 
@@ -75,14 +76,14 @@
     public NavData columnToNav(ColumnEntity column) {
         NavData navData = ColumnConversion.INSTANCE.columnToNav(column);
 
-        navData.setUrl(cmsProperties.getBaseUrl() + column.getPath());
+        navData.setUrl(baseUrl + column.getPath());
         if (column.getType() == 2) {
             if (column.getTargetType() == 1) {
                 ArticleEntity article = this.articleMapper.selectArticleById(Long.parseLong(column.getTargetUrl()));
-                navData.setUrl(cmsProperties.getBaseUrl() + article.getPath() + "/" + article.getId() + ".html");
+                navData.setUrl(baseUrl + article.getPath() + "/" + article.getId() + ".html");
             } else if (column.getTargetType() == 2) {
                 ColumnEntity columnEntity = this.columnMapper.selectByCodeAndCompanyId(column.getTargetUrl(), column.getCompanyId());
-                navData.setUrl(cmsProperties.getBaseUrl() + columnEntity.getPath());
+                navData.setUrl(baseUrl + columnEntity.getPath());
             } else {
                 navData.setUrl(column.getTargetUrl());
             }
diff --git a/src/main/java/com/xcong/farmer/cms/core/handler/PageDataParserHandler.java b/src/main/java/com/xcong/farmer/cms/core/handler/PageDataParserHandler.java
index 297e1d6..e49892f 100644
--- a/src/main/java/com/xcong/farmer/cms/core/handler/PageDataParserHandler.java
+++ b/src/main/java/com/xcong/farmer/cms/core/handler/PageDataParserHandler.java
@@ -27,12 +27,12 @@
 public class PageDataParserHandler implements DataParserHandler {
 
     private ArticleMapper articleMapper = SpringContextHolder.getBean(ArticleMapper.class);
-    private CmsProperties cmsProperties = SpringContextHolder.getBean(CmsProperties.class);
     @Override
     public void dataParser(AttrNode attrNode) {
         log.info("分页解析");
         synchronized (this) {
             Template.HAS_PAGING = true;
+            String baseUrl = (String) attrNode.getSystemDataValue("baseUrl");
 
             Long companyId = (Long) attrNode.getSystemDataValue("companyId");
             Pagination param = (Pagination) attrNode.getParam();
@@ -49,7 +49,7 @@
             pageData.setTotalCnt((int) pageList.getSize());
 
             if (CollUtil.isNotEmpty(pageList.getRecords())) {
-                String path = cmsProperties.getBaseUrl() + "/" + param.getCode();
+                String path = baseUrl + "/" + param.getCode();
                 String filename = "index_{}.html";
 
                 List<PageChildData> list = new ArrayList<>();
diff --git a/src/main/java/com/xcong/farmer/cms/core/node/Template.java b/src/main/java/com/xcong/farmer/cms/core/node/Template.java
index 51d5c27..6a7a49c 100644
--- a/src/main/java/com/xcong/farmer/cms/core/node/Template.java
+++ b/src/main/java/com/xcong/farmer/cms/core/node/Template.java
@@ -97,7 +97,7 @@
             sb.append(partNode.getHtml());
         }
         document = Jsoup.parse(sb.toString());
-        String outPath = path(outputPath);
+        String outPath = path(outputPath) + system.get("companyCode");
 
         String html = document.html();
         try {
diff --git a/src/main/java/com/xcong/farmer/cms/core/template/Configuration.java b/src/main/java/com/xcong/farmer/cms/core/template/Configuration.java
index 766240b..ade1636 100644
--- a/src/main/java/com/xcong/farmer/cms/core/template/Configuration.java
+++ b/src/main/java/com/xcong/farmer/cms/core/template/Configuration.java
@@ -6,7 +6,7 @@
 
 public abstract class Configuration {
 
-    protected static String BASE_URL;
+    protected static String API_URL;
     protected static String STATIC_URL;
     protected static String staticPath;
     protected static String templatePath;
@@ -15,11 +15,11 @@
     public Configuration() {
     }
 
-    public Configuration(String templatePath, String staticPath, String outputPath, String baseUrl, String staticUrl) {
+    public Configuration(String templatePath, String staticPath, String outputPath, String apiUrl, String staticUrl) {
         Configuration.staticPath = staticPath;
         Configuration.templatePath = templatePath;
         Configuration.outputPath = outputPath;
-        Configuration.BASE_URL = baseUrl;
+        Configuration.API_URL = apiUrl;
         Configuration.STATIC_URL = staticUrl;
     }
 
diff --git a/src/main/java/com/xcong/farmer/cms/core/template/TemplateConfiguration.java b/src/main/java/com/xcong/farmer/cms/core/template/TemplateConfiguration.java
index 1c3b7f6..22ac0dc 100644
--- a/src/main/java/com/xcong/farmer/cms/core/template/TemplateConfiguration.java
+++ b/src/main/java/com/xcong/farmer/cms/core/template/TemplateConfiguration.java
@@ -1,5 +1,6 @@
 package com.xcong.farmer.cms.core.template;
 
+import com.xcong.farmer.cms.common.utils.FileUtils;
 import com.xcong.farmer.cms.core.node.PartNode;
 import com.xcong.farmer.cms.core.node.Template;
 import lombok.extern.slf4j.Slf4j;
@@ -32,10 +33,13 @@
         if (this.templateLoader == null) {
             throw new RuntimeException("TemplateLoader do not able to be null");
         }
+        map.put("apiUrl", API_URL);
+
+        String companyCode = (String) map.get("companyCode");
 
         log.info("解析开始执行--#类型:{}#--#模板名称:{}#--#ID:{}#", map.get("templateType"), templateName, map.get("id"));
         this.templateLoader.data(map);
-        Template template = template(templateName);
+        Template template = template(FileUtils.path(templatePath, companyCode), templateName);
         template.output(outputPath);
 
         // 判断是否有分页,有则执行。从第二页开始
@@ -43,13 +47,13 @@
         while(Template.HAS_PAGING) {
             map.put("page", i);
             this.templateLoader.data(map);
-            Template pageTemplate = template(templateName);
+            Template pageTemplate = template(FileUtils.path(templatePath, companyCode), templateName);
             pageTemplate.output(outputPath);
             i++;
         }
     }
 
-    public Template template(String templateName) {
+    public Template template(String templatePath, String templateName) {
         return template(new File(path(templatePath) + templateName));
     }
 
diff --git a/src/main/java/com/xcong/farmer/cms/modules/core/service/ICmsCoreService.java b/src/main/java/com/xcong/farmer/cms/modules/core/service/ICmsCoreService.java
index 08b0e1e..9eceba7 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/core/service/ICmsCoreService.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/core/service/ICmsCoreService.java
@@ -38,4 +38,6 @@
 
     void indexProcess(Map<String, Object> map, String templateName);
 
+    void process(Map<String, Object> map, String templateType, String templateName);
+
 }
diff --git a/src/main/java/com/xcong/farmer/cms/modules/core/service/impl/CmsCoreServiceImpl.java b/src/main/java/com/xcong/farmer/cms/modules/core/service/impl/CmsCoreServiceImpl.java
index 811b5da..7a2eb81 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/core/service/impl/CmsCoreServiceImpl.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/core/service/impl/CmsCoreServiceImpl.java
@@ -4,6 +4,7 @@
 import cn.hutool.core.util.StrUtil;
 import com.xcong.farmer.cms.core.template.TemplateConfiguration;
 import com.xcong.farmer.cms.modules.core.service.ICmsCoreService;
+import com.xcong.farmer.cms.modules.system.mapper.WebSetMapper;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -28,12 +29,16 @@
     @Autowired
     private TemplateConfiguration cfg;
 
+    @Autowired
+    private WebSetMapper webSetMapper;
+
 
     @Override
     public void articleProcess(Map<String, Object> data, String templateName, String templatePath) {
         data.put("templateType", "article");
         data.put("templatePath", templatePath);
         data.put("templateName", data.get("id"));
+        globalData(data);
         if (StrUtil.isEmpty(templateName)) {
             templateName = "defualt.article.html";
         }
@@ -74,6 +79,7 @@
     public void columnProcess(Map<String, Object> data, String templateName) {
         data.put("templateType", "column");
         data.put("page", 1);
+        globalData(data);
         if (StrUtil.isEmpty(templateName)) {
             templateName = "defualt.list.html";
         }
@@ -89,6 +95,7 @@
     @Override
     public void indexProcess(@NotNull Map<String, Object> data, String templateName) {
         data.put("templateType", "index");
+        globalData(data);
         if (StrUtil.isEmpty(templateName)) {
             templateName = "index.html";
         }
@@ -100,4 +107,23 @@
             log.error("发布首页错误", e);
         }
     }
+
+    @Override
+    public void process(Map<String, Object> data, String templateType, String templateName) {
+        data.put("templateType", templateType);
+        globalData(data);
+        try {
+            cfg.process(data, templateName);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("发布错误", e);
+        }
+    }
+
+    private void globalData(Map<String, Object> data) {
+        Long companyId = (Long) data.get("companyId");
+        Map<String, String> globalSetting = webSetMapper.selectSiteGlobalSetting(companyId);
+
+        data.putAll(globalSetting);
+    }
 }
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/mapper/WebSetMapper.java b/src/main/java/com/xcong/farmer/cms/modules/system/mapper/WebSetMapper.java
index 2a0a7db..fa83417 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/mapper/WebSetMapper.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/mapper/WebSetMapper.java
@@ -4,7 +4,11 @@
 import com.xcong.farmer.cms.modules.system.entity.WebSettingEntity;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.Map;
+
 public interface WebSetMapper extends BaseMapper<WebSettingEntity> {
 
     WebSettingEntity selectByCompanyId(@Param("companyId") Long companyId);
+
+    Map<String, String> selectSiteGlobalSetting(@Param("companyId") Long companyId);
 }
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/CmsTemplateServiceImpl.java b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/CmsTemplateServiceImpl.java
index 092a821..2467205 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/CmsTemplateServiceImpl.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/CmsTemplateServiceImpl.java
@@ -15,7 +15,9 @@
 import com.xcong.farmer.cms.modules.system.dto.AdminSaveTemplateInfoDto;
 import com.xcong.farmer.cms.modules.system.dto.TemplateListDto;
 import com.xcong.farmer.cms.modules.system.entity.CmsTemplateEntity;
+import com.xcong.farmer.cms.modules.system.entity.CompanyEntity;
 import com.xcong.farmer.cms.modules.system.mapper.CmsTemplateMapper;
+import com.xcong.farmer.cms.modules.system.mapper.CompanyMapper;
 import com.xcong.farmer.cms.modules.system.service.ICmsTemplateService;
 import com.xcong.farmer.cms.modules.system.util.LoginUserUtil;
 import org.jsoup.Jsoup;
@@ -46,6 +48,10 @@
     @Autowired
     private CmsProperties properties;
 
+    @Autowired
+    private CompanyMapper companyMapper;
+
+
     private List<String> fileSuffix = Arrays.asList(".zip", ".html");
 
     @Override
@@ -53,6 +59,11 @@
         String templatePath = properties.getTemplatePath();
         String staticPath = properties.getStaticPath();
         Long companyId = LoginUserUtil.getCompanyId();
+        CompanyEntity company = companyMapper.selectById(companyId);
+
+        String companyCode = company.getCode();
+        templatePath = FileUtils.path(templatePath, companyCode);
+        staticPath = FileUtils.path(staticPath, companyCode);
 
         String filename = upload.getOriginalFilename();
         String suffix = filename.substring(filename.lastIndexOf("."));
@@ -91,14 +102,14 @@
                         continue;
                     }
 
-                    insertTemplate(templateFile, companyId);
+                    insertTemplate(templateFile, companyId, companyCode);
                 }
             }
 
             if (".html".equals(suffix)) {
                 FileUtil.touch(file);
 
-                insertTemplate(file, companyId);
+                insertTemplate(file, companyId, companyCode);
             }
         } catch (IOException e) {
             e.printStackTrace();
@@ -106,13 +117,13 @@
         }
     }
 
-    private void insertTemplate(File file, Long companyId) throws IOException {
+    private void insertTemplate(File file, Long companyId, String companyCode) throws IOException {
         Document parse = Jsoup.parse(file, null);
         String attr = parse.head().attr("name");
 
-        staticPathParser(parse, "img", "src");
-        staticPathParser(parse, "link", "href");
-        staticPathParser(parse, "script", "src");
+        staticPathParser(parse, "img", "src", companyCode);
+        staticPathParser(parse, "link", "href", companyCode);
+        staticPathParser(parse, "script", "src", companyCode);
 
         FileOutputStream outputStream = new FileOutputStream(file);
         outputStream.write(parse.html().getBytes());
@@ -133,7 +144,7 @@
         this.baseMapper.insert(cmsTemplate);
     }
 
-    private void staticPathParser(Document document, String tagName, String attrKey) {
+    private void staticPathParser(Document document, String tagName, String attrKey, String companyCode) {
         Elements elements = document.getElementsByTag(tagName);
         if (elements.isEmpty()) {
             return;
@@ -142,7 +153,7 @@
         for (Element element : elements) {
             String attr = element.attr(attrKey);
             if (StrUtil.isNotBlank(attr) && !attr.contains("http://") && !attr.contains("https://")) {
-                element.attr(attrKey, cmsProperties.getStaticUrl() + attr);
+                element.attr(attrKey, cmsProperties.getStaticUrl() + companyCode + "/" + attr);
             }
         }
     }
diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ColumnServiceImpl.java b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ColumnServiceImpl.java
index 287fe8c..7498eb2 100644
--- a/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ColumnServiceImpl.java
+++ b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ColumnServiceImpl.java
@@ -8,7 +8,6 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xcong.farmer.cms.common.contants.AppContants;
 import com.xcong.farmer.cms.common.response.Result;
-import com.xcong.farmer.cms.configurations.properties.CmsProperties;
 import com.xcong.farmer.cms.modules.system.dto.AdminAddColumnDto;
 import com.xcong.farmer.cms.modules.system.dto.AdminColumnDto;
 import com.xcong.farmer.cms.modules.system.dto.AdminDeleteDto;
@@ -42,8 +41,6 @@
     private ArticleMapper articleMapper;
     @Autowired
     private CompanyMapper companyMapper;
-    @Autowired
-    private CmsProperties cmsProperties;
 
     @Override
     public Result getColumnInPage(AdminColumnDto adminColumnDto) {
@@ -167,18 +164,21 @@
         adminSeeColumnInfoVo.setType(columnEntity.getType());
         adminSeeColumnInfoVo.setTargetType(columnEntity.getTargetType());
         adminSeeColumnInfoVo.setContentType(columnEntity.getContentType());
+
+        CompanyEntity companyEntity = companyMapper.selectById(LoginUserUtil.getCompanyId());
+
         if (columnEntity.getType() == 2) {
             if (columnEntity.getTargetType() == 1) {
                 ArticleEntity articleEntity = articleMapper.selectById(Long.parseLong(columnEntity.getTargetUrl()));
                 adminSeeColumnInfoVo.setTargetName(articleEntity.getTitle());
-                adminSeeColumnInfoVo.setUrl(cmsProperties.getBaseUrl() + columnEntity.getPath() + "/" + columnEntity.getTargetUrl() + ".html");
+                adminSeeColumnInfoVo.setUrl(companyEntity.getWebAddress() + columnEntity.getPath() + "/" + columnEntity.getTargetUrl() + ".html");
             } else if (columnEntity.getTargetType() == 2) {
                 ColumnEntity column = this.baseMapper.selectByCodeAndCompanyId(columnEntity.getTargetUrl(), LoginUserUtil.getCompanyId());
                 adminSeeColumnInfoVo.setTargetName(column.getColumnName());
-                adminSeeColumnInfoVo.setUrl(cmsProperties.getBaseUrl() + column.getPath());
+                adminSeeColumnInfoVo.setUrl(companyEntity.getWebAddress() + column.getPath());
             }
         } else {
-            adminSeeColumnInfoVo.setUrl(cmsProperties.getBaseUrl() + columnEntity.getPath());
+            adminSeeColumnInfoVo.setUrl(companyEntity.getWebAddress() + columnEntity.getPath());
         }
         adminSeeColumnInfoVo.setTargetUrl(columnEntity.getTargetUrl());
         return Result.ok(adminSeeColumnInfoVo);
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index dea844b..6adb6f3 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -99,9 +99,9 @@
     path: /image/
 
 cms:
-  base-url: http://localhost
+  api-url: http://120.27.238.55:8878
   static-url: http://120.27.238.55:8000/cms/static/
-  template-path: /Users/helius/Desktop/template
-  static-path: /Users/helius/Desktop/static
+  template-path: /Users/helius/Desktop/template-online/template
+  static-path: /Users/helius/Desktop/template-online/static
   output-path: /Users/helius/Desktop/template-online/output
 
diff --git a/src/main/resources/mapper/WebSetMapper.xml b/src/main/resources/mapper/WebSetMapper.xml
index d70179d..c802dc4 100644
--- a/src/main/resources/mapper/WebSetMapper.xml
+++ b/src/main/resources/mapper/WebSetMapper.xml
@@ -11,4 +11,17 @@
         where a.company_id=#{companyId} and a.company_id=b.id
     </select>
 
+    <select id="selectSiteGlobalSetting" resultType="java.util.Map">
+        select
+            a.title title,
+            a.seo_title seoTitle,
+            a.seo_keyword seoKeyword,
+            a.seo_description seoDescription,
+            a.logo_url logo,
+            b.web_address baseUrl,
+            b.code companyCode
+        from t_web_setting a, t_company b
+        where a.company_id=#{companyId} and a.company_id=b.id
+    </select>
+
 </mapper>
\ No newline at end of file
diff --git a/src/test/java/com/xcong/farmer/cms/KssframeworkApplicationTests.java b/src/test/java/com/xcong/farmer/cms/KssframeworkApplicationTests.java
index a571fb4..888ee4a 100644
--- a/src/test/java/com/xcong/farmer/cms/KssframeworkApplicationTests.java
+++ b/src/test/java/com/xcong/farmer/cms/KssframeworkApplicationTests.java
@@ -108,7 +108,7 @@
     public void viewTemplateInfo() {
         Long id = 4L;
         CmsTemplateEntity cmsTemplateEntity = cmsTemplateMapper.selectById(id);
-        String htmlUrl = cmsProperties.getBaseUrl() + cmsProperties.getTemplatePath();
+        String htmlUrl = "" + cmsProperties.getTemplatePath();
         File uploadDir = new File(htmlUrl);
         if (!uploadDir.isDirectory()) {
             uploadDir.mkdir();

--
Gitblit v1.9.1