From ea4120a80f7ef6188a745d9b27238cde1a3f7d74 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Thu, 07 Jul 2022 18:06:55 +0800 Subject: [PATCH] modify release --- src/main/java/com/xcong/farmer/cms/modules/core/service/impl/CmsCoreServiceImpl.java | 28 ++++++++----- src/main/java/com/xcong/farmer/cms/modules/system/controller/AdminColumnController.java | 7 +++ src/main/java/com/xcong/farmer/cms/modules/core/service/ICmsCoreService.java | 4 +- src/main/java/com/xcong/farmer/cms/modules/system/dto/ReleaseColumnDto.java | 20 ++++++++++ src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ArticleServiceImpl.java | 1 src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ReleaseServiceImpl.java | 23 ++++++++++- 6 files changed, 67 insertions(+), 16 deletions(-) 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 0a15e8e..9f37a90 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 @@ -10,7 +10,7 @@ * @param id * @param templateName */ - void articleProcess(Long id, String templateName, String templatPath); + void articleProcess(Map<String, Object> data, String templateName, String templatePath); /** * 栏目编译 @@ -18,7 +18,7 @@ * @param templateName 模板名称 * @param columnOnly 是否只编译当前栏目列表页(如果false,则会编译栏目下所有子栏目或者所有文章) */ - void columnProcess(Map<String, Object> map, String templateName, boolean columnOnly); + void columnProcess(Map<String, Object> map, String templateName); void indexProcess(Map<String, Object> map, 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 475c74d..433f90a 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 @@ -10,6 +10,10 @@ import javax.validation.constraints.NotNull; import java.util.HashMap; import java.util.Map; +import java.util.concurrent.Executor; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; /** * @author wzy @@ -21,30 +25,32 @@ @Autowired private TemplateConfiguration cfg; + private final Executor executor = new ThreadPoolExecutor(5, 10, 600, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>()); + @Override - public void articleProcess(Long id, String templateName, String templatePath) { - Map<String, Object> data = new HashMap<>(); - data.put("id", id); - data.put("companyId", 23L); + public void articleProcess(Map<String, Object> data, String templateName, String templatePath) { data.put("templateType", "article"); data.put("templatePath", templatePath); - data.put("templateName", id); + data.put("templateName", data.get("id")); if (StrUtil.isEmpty(templateName)) { templateName = "defualt.artile.html"; } - cfg.process(data, templateName); + + String finalTemplateName = templateName; + executor.execute(() -> cfg.process(data, finalTemplateName)); } @Override - public void columnProcess(Map<String, Object> data, String templateName, boolean article) { - data.put("companyId", 23L); + public void columnProcess(Map<String, Object> data, String templateName) { data.put("templateType", "column"); data.put("page", 1); if (StrUtil.isEmpty(templateName)) { templateName = "defualt.list.html"; } - cfg.process(data, templateName); + + String finalTemplateName = templateName; + executor.execute(() -> cfg.process(data, finalTemplateName)); } @Override @@ -53,7 +59,7 @@ templateName = "index.html"; } - data.put("companyId", 23L); - cfg.process(data, templateName); + String finalTemplateName = templateName; + executor.execute(() -> cfg.process(data, finalTemplateName)); } } diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/controller/AdminColumnController.java b/src/main/java/com/xcong/farmer/cms/modules/system/controller/AdminColumnController.java index 27779ea..236057e 100644 --- a/src/main/java/com/xcong/farmer/cms/modules/system/controller/AdminColumnController.java +++ b/src/main/java/com/xcong/farmer/cms/modules/system/controller/AdminColumnController.java @@ -10,6 +10,7 @@ import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import lombok.extern.slf4j.Slf4j; +import org.apache.ibatis.annotations.Param; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -65,4 +66,10 @@ return iColumnService.delObjs(adminDeleteDto); } + @ApiOperation(value = "发布栏目", notes = "发布栏目") + @PostMapping(value = "/release") + public Result release(@RequestBody ReleaseColumnDto releaseColumnDto) { + return Result.ok("发布成功"); + } + } diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/dto/ReleaseColumnDto.java b/src/main/java/com/xcong/farmer/cms/modules/system/dto/ReleaseColumnDto.java new file mode 100644 index 0000000..ba1464a --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/modules/system/dto/ReleaseColumnDto.java @@ -0,0 +1,20 @@ +package com.xcong.farmer.cms.modules.system.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author wzy + * @date 2022-07-07 + **/ +@Data +@ApiModel(value = "ReleaseColumnDto", description = "发布栏目接收参数类") +public class ReleaseColumnDto { + + @ApiModelProperty(value = "栏目ID", example = "1") + private Long id; + + @ApiModelProperty(value = "是否编译子栏目和栏目下所有文章 1-是 ,2-否", example = "1") + private Integer type; +} diff --git a/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ArticleServiceImpl.java b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ArticleServiceImpl.java index 6a2ce1d..4cb2c13 100644 --- a/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ArticleServiceImpl.java +++ b/src/main/java/com/xcong/farmer/cms/modules/system/service/Impl/ArticleServiceImpl.java @@ -46,6 +46,7 @@ @Autowired private ICmsCoreService cmsCoreService; + @Override public Result getArticleInPage(AdminArticleDto adminArticleDto) { UserEntity userlogin = LoginUserUtil.getLoginUser(); 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 8002634..0b1587b 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 @@ -6,6 +6,7 @@ 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.service.IReleaseService; +import com.xcong.farmer.cms.modules.system.util.LoginUserUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -32,14 +33,25 @@ @Override public void releaseArticle(Long id) { + Long companyId = LoginUserUtil.getCompanyId(); ArticleEntity article = articleMapper.selectById(id); - ColumnEntity column = columnMapper.selectById(article.getColumnId()); - cmsCoreService.articleProcess(article.getId(), column.getArticleTemplate(), column.getPath()); + + Map<String, Object> data = new HashMap<>(); + data.put("id", article.getId()); + data.put("companyId", companyId); + + cmsCoreService.articleProcess(data, column.getArticleTemplate(), column.getPath()); + this.releaseColumn(column.getId(), false); + if (column.getParentId() != 0L) { + releaseColumn(column.getParentId(), false); + } + this.releaseIndex(); } @Override public void releaseColumn(Long id, boolean article) { + Long companyId = LoginUserUtil.getCompanyId(); ColumnEntity columnEntity = columnMapper.selectById(id); Map<String, Object> map = new HashMap<>(); map.put("id", columnEntity.getId()); @@ -51,12 +63,17 @@ map.put("parentCode", parent.getColumnCode()); } map.put("templatePath", columnEntity.getPath()); - cmsCoreService.columnProcess(map, columnEntity.getListTemplate(), article); + map.put("companyId", companyId); + + cmsCoreService.columnProcess(map, columnEntity.getListTemplate()); } @Override public void releaseIndex() { Map<String, Object> map = new HashMap<>(); + Long companyId = LoginUserUtil.getCompanyId(); + map.put("companyId", companyId); + cmsCoreService.indexProcess(map, null); } } -- Gitblit v1.9.1