From a0c562b9149d5f85b65fc39fa9c5f48fb49f57ae Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Tue, 30 Aug 2022 16:57:26 +0800 Subject: [PATCH] fix --- src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ReleaseServiceImpl.java | 114 +++++++++++++++++++++++++++++++-------------------------- 1 files changed, 62 insertions(+), 52 deletions(-) diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ReleaseServiceImpl.java b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ReleaseServiceImpl.java index 63f984f..4d243a7 100644 --- a/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ReleaseServiceImpl.java +++ b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ReleaseServiceImpl.java @@ -1,7 +1,9 @@ package com.xcong.farmer.cms.modules.system.service.Impl; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.io.FileUtil; +import com.xcong.farmer.cms.common.contants.AppContants; import com.xcong.farmer.cms.common.utils.FileUtils; import com.xcong.farmer.cms.configurations.properties.CmsProperties; import com.xcong.farmer.cms.modules.core.service.ICmsCoreService; @@ -55,30 +57,29 @@ @Autowired private WebSetMapper webSetMapper; - private final Executor executor = new ThreadPoolExecutor(5, 20, 600, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>()); - @Override public void releaseArticle(Long id, Long companyId) { ArticleEntity article = articleMapper.selectById(id); ColumnEntity column = columnMapper.selectById(article.getColumnId()); - Long beforeColumnId = article.getBeforeColumnId(); - article.setBeforeColumnId(-1L); - articleMapper.updateById(article); + AppContants.EXECUTOR.execute(() -> { + Long beforeColumnId = article.getBeforeColumnId(); + article.setBeforeColumnId(-1L); + articleMapper.updateById(article); - Map<String, Object> data = new Hashtable<>(); - data.put("id", article.getId()); - data.put("companyId", companyId); + Map<String, Object> data = new Hashtable<>(); + data.put("id", article.getId()); + data.put("companyId", companyId); - executor.execute(() -> { log.info("执行文章发布"); cmsCoreService.articleProcess(data, column.getArticleTemplate(), column.getPath()); + this.releaseColumn(column.getId(), 1, companyId); if (column.getParentId() != 0L) { releaseColumn(column.getParentId(), 1, companyId); } - if (beforeColumnId != null && !article.getColumnId().equals(beforeColumnId)) { + if (beforeColumnId != -1 && !article.getColumnId().equals(beforeColumnId)) { ColumnEntity beforeColumn = columnMapper.selectById(beforeColumnId); this.releaseColumn(beforeColumnId, 1, companyId); if (beforeColumn.getParentId() != 0L) { @@ -93,31 +94,33 @@ @Override public void releaseColumn(Long id, int type, Long companyId) { ColumnEntity columnEntity = columnMapper.selectById(id); - Map<String, Object> map = buildColumnData(columnEntity); - if (columnEntity.getBeforeParentId() != -1 || !"-1".equals(columnEntity.getBeforeColumnCode())) { - CompanyEntity company = companyMapper.selectById(companyId); - if (!"-1".equals(columnEntity.getBeforeColumnCode())) { - String outputPath = FileUtils.path(cmsProperties.getOutputPath(), company.getCode()) + "/" + columnEntity.getBeforeColumnCode(); - log.info("删除路径为:{}", outputPath); - FileUtil.del(outputPath); + AppContants.EXECUTOR.execute(() -> { + Map<String, Object> map = buildColumnData(columnEntity); + + // 判断栏目是否编辑了栏目编码或者修改了父级栏目 + if (columnEntity.getBeforeParentId() != -1 || !"-1".equals(columnEntity.getBeforeColumnCode())) { + CompanyEntity company = companyMapper.selectById(companyId); + if (!"-1".equals(columnEntity.getBeforeColumnCode())) { + String outputPath = FileUtils.path(cmsProperties.getOutputPath(), company.getCode()) + "/" + columnEntity.getBeforeColumnCode(); + log.info("删除路径为:{}", outputPath); + FileUtil.del(outputPath); + } + + if (columnEntity.getBeforeParentId() != -1) { + ColumnEntity parent = columnMapper.selectById(columnEntity.getBeforeParentId()); + String path = FileUtils.path(cmsProperties.getOutputPath(), company.getCode()) + parent.getPath() + "/" + columnEntity.getColumnCode(); + log.info("删除路径为:{}", path); + FileUtil.del(path); + } + + columnEntity.setBeforeColumnCode("-1"); + columnEntity.setBeforeParentId(-1L); + columnMapper.updateById(columnEntity); + releaseAll(companyId); + return; } - if (columnEntity.getBeforeParentId() != -1) { - ColumnEntity parent = columnMapper.selectById(columnEntity.getBeforeParentId()); - String path = FileUtils.path(cmsProperties.getOutputPath(), company.getCode()) + parent.getPath() + "/" + columnEntity.getColumnCode(); - log.info("删除路径为:{}", path); - FileUtil.del(path); - } - - columnEntity.setBeforeColumnCode("-1"); - columnEntity.setBeforeParentId(-1L); - columnMapper.updateById(columnEntity); - releaseAll(companyId); - return; - } - - executor.execute(() -> { List<ArticleEntity> articles = articleMapper.selectArticleByColumnId(columnEntity.getId(), companyId, type); if (CollUtil.isNotEmpty(articles)) { for (ArticleEntity article : articles) { @@ -127,8 +130,10 @@ } if (article.getType() == 1) { - map.put("id", article.getId()); - cmsCoreService.articleProcess(map, columnEntity.getArticleTemplate(), columnEntity.getPath()); + Map<String, Object> articleMap = new HashMap<>(); + BeanUtil.copyProperties(map, articleMap); + articleMap.put("id", article.getId()); + cmsCoreService.articleProcess(articleMap, columnEntity.getArticleTemplate(), columnEntity.getPath()); } } } @@ -144,25 +149,25 @@ } releaseIndex(companyId, false); - }); - if (type != 1) { - executor.execute(() -> { + if (type != 1) { if (columnEntity.getParentId() == 0L) { List<ColumnEntity> columns = columnMapper.selectColumnByParentId(columnEntity.getId(), companyId, 2); if (CollUtil.isNotEmpty(columns)) { for (ColumnEntity column : columns) { - List<ArticleEntity> articles = articleMapper.selectArticleByColumnId(column.getId(), companyId, type); - if (CollUtil.isNotEmpty(articles)) { - for (ArticleEntity article : articles) { + List<ArticleEntity> articleList = articleMapper.selectArticleByColumnId(column.getId(), companyId, type); + if (CollUtil.isNotEmpty(articleList)) { + for (ArticleEntity article : articleList) { if (article.getReleaseStatus() == 0) { article.setReleaseStatus(1); articleMapper.updateById(article); } if (article.getType() == 1) { - map.put("id", article.getId()); - cmsCoreService.articleProcess(map, column.getArticleTemplate(), column.getPath()); + Map<String, Object> articleMap = new HashMap<>(); + BeanUtil.copyProperties(map, articleMap); + articleMap.put("id", article.getId()); + cmsCoreService.articleProcess(articleMap, column.getArticleTemplate(), column.getPath()); } } } @@ -174,9 +179,8 @@ } releaseIndex(companyId, false); - }); - - } + } + }); } @Override @@ -187,9 +191,11 @@ return; } - for (ColumnEntity column : columns) { - releaseColumn(column.getId(), type, companyId); - } + AppContants.EXECUTOR.execute(() -> { + for (ColumnEntity column : columns) { + releaseColumn(column.getId(), type, companyId); + } + }); } private Map<String, Object> buildColumnData(ColumnEntity columnEntity) { @@ -217,10 +223,14 @@ cmsCoreService.indexProcess(map, webSetting.getIndexTemplate()); if (hasSearch) { - executor.execute(() -> { - cmsCoreService.process(map, "search", webSetting.getSearchTemplate()); - cmsCoreService.process(map, "message", webSetting.getMsgTemplate()); - }); + Map<String, Object> search = new HashMap<>(); + search.put("companyId", companyId); + + Map<String, Object> message = new HashMap<>(); + message.put("companyId", companyId); + + cmsCoreService.process(search, "search", webSetting.getSearchTemplate()); + cmsCoreService.process(message, "message", webSetting.getMsgTemplate()); } } -- Gitblit v1.9.1