From 6e1ec4c1d89a24230f2c14b4dfee2819f170624f Mon Sep 17 00:00:00 2001 From: jinia91 Date: Thu, 14 Apr 2022 22:56:36 +0900 Subject: [PATCH] =?UTF-8?q?=EB=A6=AC=ED=8C=A9=ED=86=A0=EB=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapter/incomming/ArticleController.java | 46 +++++------- .../adapter/incomming/MainController.java | 18 +---- .../incomming/TempArticleController.java | 20 +----- .../article/application/ArticleService.java | 14 ++-- .../blog/article/application/TagsQueries.java | 2 +- .../blog/article/application/TagsService.java | 2 +- .../application/TempArticleService.java | 18 +++-- .../port/incomming/TempArticleUseCase.java | 8 +-- .../response/ArticleResponseForCardBox.java | 3 + .../myblog/blog/article/domain/Article.java | 3 +- .../adapter/imcomming/CategoryController.java | 9 ++- .../appliacation/CategoryService.java | 71 ++++++------------- .../incomming/response/CategorySimpleDto.java | 6 ++ 13 files changed, 82 insertions(+), 138 deletions(-) diff --git a/src/main/java/myblog/blog/article/adapter/incomming/ArticleController.java b/src/main/java/myblog/blog/article/adapter/incomming/ArticleController.java index fbaa2c0..80f0cd6 100644 --- a/src/main/java/myblog/blog/article/adapter/incomming/ArticleController.java +++ b/src/main/java/myblog/blog/article/adapter/incomming/ArticleController.java @@ -9,16 +9,12 @@ import myblog.blog.shared.application.port.incomming.LayoutRenderingUseCase; import myblog.blog.article.application.port.incomming.request.ArticleCreateCommand; import myblog.blog.article.application.port.incomming.request.ArticleEditCommand; -import myblog.blog.article.application.port.incomming.response.ArticleResponseByCategory; -import myblog.blog.article.application.port.incomming.response.ArticleResponseForCardBox; -import myblog.blog.article.application.port.incomming.response.ArticleResponseForEdit; import myblog.blog.category.appliacation.port.incomming.response.CategoryViewForLayout; import myblog.blog.member.application.port.incomming.response.PrincipalDetails; import lombok.RequiredArgsConstructor; import myblog.blog.shared.utils.MetaTagBuildUtils; import org.jsoup.Jsoup; -import org.springframework.data.domain.*; import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; @@ -28,9 +24,6 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletResponse; -import java.util.List; - -import static myblog.blog.shared.utils.MarkdownUtils.*; @Controller @RequiredArgsConstructor @@ -59,7 +52,7 @@ public class ArticleController { Errors errors, Model model) { if (errors.hasErrors()) getArticleWriteForm(model); var command = ArticleCreateCommand.from(articleForm, principal.getMemberId()); - Long articleId = articleUseCase.writeArticle(command); + var articleId = articleUseCase.writeArticle(command); articleUseCase.backupArticle(articleId); tempArticleUseCase.deleteTemp(); return "redirect:/article/view?articleId=" + articleId; @@ -69,7 +62,7 @@ public class ArticleController { */ @GetMapping("/article/edit") String updateArticle(@RequestParam Long articleId, Model model) { - ArticleResponseForEdit articleDto = articleQueriesUseCase.getArticleForEdit(articleId); + var articleDto = articleQueriesUseCase.getArticleForEdit(articleId); layoutRenderingUseCase.AddLayoutTo(model); model.addAttribute("categoryInput", categoryQueriesUseCase.findCategoryByTier(2)); model.addAttribute("tagsInput", tagsQueriesUseCase.findAllTagDtos()); @@ -99,12 +92,11 @@ public class ArticleController { @RequestParam int tier, @RequestParam int page, Model model) { + int totalArticleCnt = getTotalArticleCntByCategory(category, categoryQueriesUseCase.getCategoryViewForLayout()); var pagingBoxHandler = - PagingBoxHandler.createOf(page, getTotalArticleCntByCategory(category, categoryQueriesUseCase.getCategoryViewForLayout())); + PagingBoxHandler.createOf(page, totalArticleCnt); var articleDtoList = articleQueriesUseCase.getArticlesByCategory(category, tier, pagingBoxHandler.getCurPageNum()); - for(var articleDto : articleDtoList){ - articleDto.setContent(Jsoup.parse(getHtmlRenderer().render(getParser().parse(articleDto.getContent()))).text()); - } + for(var articleDto : articleDtoList) articleDto.parseAndRenderForView(); layoutRenderingUseCase.AddLayoutTo(model); model.addAttribute("pagingBox", pagingBoxHandler); model.addAttribute("articleList", articleDtoList); @@ -112,12 +104,10 @@ public class ArticleController { } private int getTotalArticleCntByCategory(String category, CategoryViewForLayout categorys) { if (categorys.getTitle().equals(category)) return categorys.getCount(); - else { - for (var categoryCnt : categorys.getCategoryTCountList()) { - if (categoryCnt.getTitle().equals(category)) return categoryCnt.getCount(); - for (var categoryCntSub : categoryCnt.getCategoryTCountList()) { - if (categoryCntSub.getTitle().equals(category)) return categoryCntSub.getCount(); - } + for (var categoryCnt : categorys.getCategoryTCountList()) { + if (categoryCnt.getTitle().equals(category)) return categoryCnt.getCount(); + for (var categoryCntSub : categoryCnt.getCategoryTCountList()) { + if (categoryCntSub.getTitle().equals(category)) return categoryCntSub.getCount(); } } throw new IllegalArgumentException("'"+category+"' 라는 카테고리는 존재하지 않습니다."); @@ -129,10 +119,8 @@ public class ArticleController { String getArticlesListByTag(@RequestParam Integer page, @RequestParam String tagName, Model model) { - Page articleList = articleQueriesUseCase.getArticlesByTag(tagName, page); - for(var article : articleList){ - article.parseAndRenderForView(); - } + var articleList = articleQueriesUseCase.getArticlesByTag(tagName, page); + for(var article : articleList) article.parseAndRenderForView(); var pagingBoxHandler = PagingBoxHandler.createOf(page, (int)articleList.getTotalElements()); layoutRenderingUseCase.AddLayoutTo(model); model.addAttribute("articleList", articleList); @@ -146,10 +134,8 @@ public class ArticleController { String getArticlesListByKeyword(@RequestParam Integer page, @RequestParam String keyword, Model model) { - Page articleList = articleQueriesUseCase.getArticlesByKeyword(keyword, page); - for(var article : articleList){ - article.parseAndRenderForView(); - } + var articleList = articleQueriesUseCase.getArticlesByKeyword(keyword, page); + for(var article : articleList) article.parseAndRenderForView(); var pagingBoxHandler = PagingBoxHandler.createOf(page, (int)articleList.getTotalElements()); layoutRenderingUseCase.AddLayoutTo(model); model.addAttribute("articleList", articleList); @@ -173,10 +159,10 @@ public class ArticleController { addMemberInfoToModel(principal, model); var articleResponseForDetail = articleQueriesUseCase.getArticleForDetail(articleId); articleResponseForDetail.parseAndRenderForView(); - List articleTitlesSortByCategory = articleQueriesUseCase + var articleTitlesSortByCategory = articleQueriesUseCase .getArticlesByCategoryForDetailView(articleResponseForDetail.getCategory()); - String metaTags = MetaTagBuildUtils.buildMetaTags(articleResponseForDetail.getTags()); - String substringContents = getSubStringContentsFrom(articleResponseForDetail.getContent()); + var metaTags = MetaTagBuildUtils.buildMetaTags(articleResponseForDetail.getTags()); + var substringContents = getSubStringContentsFrom(articleResponseForDetail.getContent()); layoutRenderingUseCase.AddLayoutTo(model); model.addAttribute("article", articleResponseForDetail); model.addAttribute("metaTags",metaTags); diff --git a/src/main/java/myblog/blog/article/adapter/incomming/MainController.java b/src/main/java/myblog/blog/article/adapter/incomming/MainController.java index f42c79d..51c2cd6 100644 --- a/src/main/java/myblog/blog/article/adapter/incomming/MainController.java +++ b/src/main/java/myblog/blog/article/adapter/incomming/MainController.java @@ -24,9 +24,7 @@ public class MainController { */ @GetMapping("/") String main(Model model) { - // Dto 전처리 - List popularArticles = articleQueriesUseCase.getPopularArticles(); - // + var popularArticles = articleQueriesUseCase.getPopularArticles(); layoutRenderingUseCase.AddLayoutTo(model); model.addAttribute("popularArticles", popularArticles); return "index"; @@ -37,18 +35,8 @@ public class MainController { */ @GetMapping("/main/article/{lastArticleId}") @ResponseBody List mainNextPage(@PathVariable(required = false) Long lastArticleId) { - - // Entity to Dto - List articles = articleQueriesUseCase.getRecentArticles(lastArticleId); - - // 화면렌더링을 위한 파싱 - for(ArticleResponseForCardBox article : articles){ - String content = Jsoup.parse(getHtmlRenderer().render(getParser().parse(article.getContent()))).text(); - if(content.length()>300) { - content = content.substring(0, 300); - } - article.setContent(content); - } + var articles = articleQueriesUseCase.getRecentArticles(lastArticleId); + for(var article : articles) article.parseAndRenderForView(); return articles; } } diff --git a/src/main/java/myblog/blog/article/adapter/incomming/TempArticleController.java b/src/main/java/myblog/blog/article/adapter/incomming/TempArticleController.java index bdb323f..8e745c6 100644 --- a/src/main/java/myblog/blog/article/adapter/incomming/TempArticleController.java +++ b/src/main/java/myblog/blog/article/adapter/incomming/TempArticleController.java @@ -2,11 +2,9 @@ package myblog.blog.article.adapter.incomming; import myblog.blog.article.application.port.incomming.TempArticleUseCase; import myblog.blog.article.application.port.incomming.TempArticleDto; -import myblog.blog.article.domain.TempArticle; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import java.util.Optional; /* - 임시 게시물 조회, 저장을 위한 rest 컨트롤러 @@ -17,26 +15,14 @@ public class TempArticleController { private final TempArticleUseCase tempArticleUseCase; - /* - - 임시 아티클 저장 요청 - */ @PostMapping("/article/temp/autoSave") public String autoSaveTemp(@RequestBody TempArticleDto tempArticleDto){ - - tempArticleUseCase.saveTemp(new TempArticle(tempArticleDto.getContent())); + tempArticleUseCase.saveTemp(tempArticleDto.getContent()); return "저장성공"; } - /* - - 임시 아티클 조회 - */ @GetMapping("/article/temp/getTemp") - public @ResponseBody - TempArticleDto getTempArticle(){ - - Optional tempArticle = tempArticleUseCase.getTempArticle(); - TempArticleDto tempArticleDto = new TempArticleDto(); - tempArticleDto.setContent(tempArticle.orElse(new TempArticle()).getContent()); - return tempArticleDto; + public @ResponseBody TempArticleDto getTempArticle(){ + return tempArticleUseCase.getTempArticle(); } } diff --git a/src/main/java/myblog/blog/article/application/ArticleService.java b/src/main/java/myblog/blog/article/application/ArticleService.java index ab3bf53..4f14559 100644 --- a/src/main/java/myblog/blog/article/application/ArticleService.java +++ b/src/main/java/myblog/blog/article/application/ArticleService.java @@ -36,9 +36,9 @@ public class ArticleService implements ArticleUseCase { @Override @CacheEvict(value = {"layoutCaching", "layoutRecentArticleCaching","seoCaching"}, allEntries = true) public Long writeArticle(ArticleCreateCommand articleCreateCommand) { - Member writer = memberQueriesUseCase.findById(articleCreateCommand.getMemberId()); - Category category = categoryUseCase.findCategory(articleCreateCommand.getCategory()); - Article newArticle = new Article(articleCreateCommand.getTitle(), + var writer = memberQueriesUseCase.findById(articleCreateCommand.getMemberId()); + var category = categoryUseCase.findCategory(articleCreateCommand.getCategory()); + var newArticle = new Article(articleCreateCommand.getTitle(), articleCreateCommand.getContent(), articleCreateCommand.getToc(), writer, @@ -52,9 +52,9 @@ public class ArticleService implements ArticleUseCase { @Override @CacheEvict(value = {"layoutCaching", "layoutRecentArticleCaching","seoCaching"}, allEntries = true) public void editArticle(ArticleEditCommand articleEditCommand) { - Article article = articleRepositoryPort.findById(articleEditCommand.getArticleId()) + var article = articleRepositoryPort.findById(articleEditCommand.getArticleId()) .orElseThrow(() -> new IllegalArgumentException("NotFoundArticleException")); - Category category = categoryUseCase.findCategory(articleEditCommand.getCategoryName()); + var category = categoryUseCase.findCategory(articleEditCommand.getCategoryName()); tagUseCase.deleteAllTagsWith(article); tagUseCase.createNewTagsAndArticleTagList(articleEditCommand.getTags(), article); article.edit(articleEditCommand.getContent(), @@ -71,14 +71,14 @@ public class ArticleService implements ArticleUseCase { @Override public void backupArticle(Long articleId) { - Article article = articleRepositoryPort.findById(articleId) + var article = articleRepositoryPort.findById(articleId) .orElseThrow(() -> new IllegalArgumentException("NotFoundArticle")); articleBackupRepositoryPort.backup(article); } @Override public void addHit(Long articleId) { - Article article = articleRepositoryPort.findById(articleId) + var article = articleRepositoryPort.findById(articleId) .orElseThrow(() -> new IllegalArgumentException("NotFoundArticleException")); article.addHit(); } diff --git a/src/main/java/myblog/blog/article/application/TagsQueries.java b/src/main/java/myblog/blog/article/application/TagsQueries.java index 2defc0f..0c58da7 100644 --- a/src/main/java/myblog/blog/article/application/TagsQueries.java +++ b/src/main/java/myblog/blog/article/application/TagsQueries.java @@ -19,7 +19,7 @@ public class TagsQueries implements TagsQueriesUseCase { private final TagRepositoryPort tagRepositoryPort; public List findAllTagDtos(){ - List tags = tagRepositoryPort.findAll(); + var tags = tagRepositoryPort.findAll(); return tags.stream() .map(tag -> MapperUtils.getModelMapper().map(tag, TagsResponse.class)) .collect(Collectors.toList()); diff --git a/src/main/java/myblog/blog/article/application/TagsService.java b/src/main/java/myblog/blog/article/application/TagsService.java index 8b05999..8314f7c 100644 --- a/src/main/java/myblog/blog/article/application/TagsService.java +++ b/src/main/java/myblog/blog/article/application/TagsService.java @@ -25,7 +25,7 @@ public class TagsService implements TagUseCase { public void createNewTagsAndArticleTagList(String names, Article article) { List> tagsDtoArrayList = MapperUtils.getGson().fromJson(names, ArrayList.class); for (var tagDto : tagsDtoArrayList) { - Tags tag = findOrCreateTagFrom(tagDto); + var tag = findOrCreateTagFrom(tagDto); articleTagListsRepository.save(new ArticleTagList(article, tag)); } } diff --git a/src/main/java/myblog/blog/article/application/TempArticleService.java b/src/main/java/myblog/blog/article/application/TempArticleService.java index 9b0afb6..7fdd206 100644 --- a/src/main/java/myblog/blog/article/application/TempArticleService.java +++ b/src/main/java/myblog/blog/article/application/TempArticleService.java @@ -1,6 +1,7 @@ package myblog.blog.article.application; import lombok.RequiredArgsConstructor; +import myblog.blog.article.application.port.incomming.TempArticleDto; import myblog.blog.article.application.port.incomming.TempArticleUseCase; import myblog.blog.article.application.port.outgoing.TempArticleRepositoryPort; import myblog.blog.article.domain.TempArticle; @@ -20,23 +21,28 @@ public class TempArticleService implements TempArticleUseCase { - 자동 저장 로직 - ID값 고정으로 머지를 작동시켜 임시글 DB에 1개 유지 */ - public void saveTemp(TempArticle tempArticle){ - tempArticleRepositoryPort.save(tempArticle); + @Override + public void saveTemp(String tempArticleContents){ + tempArticleRepositoryPort.save(new TempArticle(tempArticleContents)); } /* - 임시글 가져오기 */ - public Optional getTempArticle(){ - return tempArticleRepositoryPort.findById(1L); + @Override + public TempArticleDto getTempArticle(){ + var tempArticle = tempArticleRepositoryPort.findById(1L); + var tempArticleDto = new TempArticleDto(); + tempArticleDto.setContent(tempArticle.orElse(new TempArticle()).getContent()); + return tempArticleDto; } /* - 임시글 삭제 */ + @Override public void deleteTemp(){ - Optional deleteArticle = tempArticleRepositoryPort.findById(1L); + var deleteArticle = tempArticleRepositoryPort.findById(1L); deleteArticle.ifPresent(tempArticleRepositoryPort::delete); } - } diff --git a/src/main/java/myblog/blog/article/application/port/incomming/TempArticleUseCase.java b/src/main/java/myblog/blog/article/application/port/incomming/TempArticleUseCase.java index ecfc976..9f6eb48 100644 --- a/src/main/java/myblog/blog/article/application/port/incomming/TempArticleUseCase.java +++ b/src/main/java/myblog/blog/article/application/port/incomming/TempArticleUseCase.java @@ -1,11 +1,7 @@ package myblog.blog.article.application.port.incomming; -import myblog.blog.article.domain.TempArticle; - -import java.util.Optional; - public interface TempArticleUseCase { - void saveTemp(TempArticle tempArticle); - Optional getTempArticle(); + void saveTemp(String tempArticleContents); + TempArticleDto getTempArticle(); void deleteTemp(); } diff --git a/src/main/java/myblog/blog/article/application/port/incomming/response/ArticleResponseForCardBox.java b/src/main/java/myblog/blog/article/application/port/incomming/response/ArticleResponseForCardBox.java index 156c799..ccddab1 100644 --- a/src/main/java/myblog/blog/article/application/port/incomming/response/ArticleResponseForCardBox.java +++ b/src/main/java/myblog/blog/article/application/port/incomming/response/ArticleResponseForCardBox.java @@ -23,6 +23,9 @@ public class ArticleResponseForCardBox { public void parseAndRenderForView(){ this.content = Jsoup.parse(getHtmlRenderer().render(getParser().parse(this.content))).text(); + if(content.length()>300) { + content = content.substring(0, 300); + } } } diff --git a/src/main/java/myblog/blog/article/domain/Article.java b/src/main/java/myblog/blog/article/domain/Article.java index eeae1ed..7a7c7e3 100644 --- a/src/main/java/myblog/blog/article/domain/Article.java +++ b/src/main/java/myblog/blog/article/domain/Article.java @@ -84,8 +84,7 @@ public class Article extends BasicEntity { } private String makeDefaultThumbOf(String thumbnailUrl) { - String defaultThumbUrl = "https://cdn.pixabay.com/photo/2020/11/08/13/28/tree-5723734_1280.jpg"; - + var defaultThumbUrl = "https://cdn.pixabay.com/photo/2020/11/08/13/28/tree-5723734_1280.jpg"; if (thumbnailUrl == null || thumbnailUrl.equals("")) { thumbnailUrl = defaultThumbUrl; } diff --git a/src/main/java/myblog/blog/category/adapter/imcomming/CategoryController.java b/src/main/java/myblog/blog/category/adapter/imcomming/CategoryController.java index 89fa8c9..bdc9f41 100644 --- a/src/main/java/myblog/blog/category/adapter/imcomming/CategoryController.java +++ b/src/main/java/myblog/blog/category/adapter/imcomming/CategoryController.java @@ -31,11 +31,11 @@ public class CategoryController { @GetMapping("/category/edit") String editCategoryForm(Model model) { - List categoryList = categoryQueriesUseCase.getCategorytCountList(); - List copyList = new ArrayList<>(List.copyOf(categoryList)); + var categoryList = categoryQueriesUseCase.getCategorytCountList(); + var copyList = new ArrayList<>(List.copyOf(categoryList)); copyList.remove(0); - CategoryViewForLayout categoryViewForLayout = CategoryViewForLayout.from(categoryList); - List comments = commentQueriesUseCase.recentCommentListForLayout(); + var categoryViewForLayout = CategoryViewForLayout.from(categoryList); + var comments = commentQueriesUseCase.recentCommentListForLayout(); model.addAttribute("categoryForEdit", copyList); model.addAttribute("category", categoryViewForLayout); @@ -48,7 +48,6 @@ public class CategoryController { */ @PostMapping("/category/edit") @ResponseBody String editCategory(@RequestBody List categoryList, Errors errors) { - // List DTO 검증을 위한 커스텀 validator categorylistValidator.validate(categoryList, errors); categoryUseCase.changeCategory(categoryList); return "변경 성공"; diff --git a/src/main/java/myblog/blog/category/appliacation/CategoryService.java b/src/main/java/myblog/blog/category/appliacation/CategoryService.java index 4fe47a2..e5e480c 100644 --- a/src/main/java/myblog/blog/category/appliacation/CategoryService.java +++ b/src/main/java/myblog/blog/category/appliacation/CategoryService.java @@ -49,68 +49,31 @@ public class CategoryService implements CategoryUseCase { @Transactional @CacheEvict(value = {"layoutCaching", "seoCaching"}, allEntries = true) public void changeCategory(List categoryList) { - // 1.카테고리 리스트 순서 작성 CategorySimpleDto.sortByOrder(categoryList); // 2. 기존 DB 저장된 카테고리 리스트 불러오기 - List categoryListFromDb = categoryRepositoryPort.findAllWithoutDummy(); - + var categoryListFromDb = categoryRepositoryPort.findAllWithoutDummy(); // 3. 카테고리 변경 while (!categoryList.isEmpty()) { - CategorySimpleDto categorySimpleDto = categoryList.get(0); + var categorySimpleDto = categoryList.get(0); categoryList.remove(0); - - // 부모카테고리인경우 - if (categorySimpleDto.getTier() == 1) { + if (categorySimpleDto.isSuperCategory()) { Category pCategory = null; - // 신규 부모인경우 - if (categorySimpleDto.getId() == null) { - pCategory = createNewCategory(categorySimpleDto, null); - } - // 기존 부모인경우 + if (categorySimpleDto.isNewCategory()) pCategory = createNewCategory(categorySimpleDto, null); else { - for (int i = 0; i < categoryListFromDb.size(); i++) { - if (categoryListFromDb.get(i).getId().equals(categorySimpleDto.getId())) { - pCategory = categoryListFromDb.get(i); - categoryListFromDb.remove(i); - break; - } - } - pCategory.updateCategory( - categorySimpleDto.getTitle(), - categorySimpleDto.getTier(), - categorySimpleDto.getPOrder(), - categorySimpleDto.getCOrder(), - null - ); + pCategory = findMatchingCategory(categoryListFromDb, categorySimpleDto, pCategory); + pCategory.updateCategory(categorySimpleDto.getTitle(), categorySimpleDto.getTier(), categorySimpleDto.getPOrder(), categorySimpleDto.getCOrder(), null); } while (!categoryList.isEmpty()) { - - CategorySimpleDto subCategorySimpleDto = categoryList.get(0); - if (subCategorySimpleDto.getTier() == 1) break; + var subCategorySimpleDto = categoryList.get(0); + if (subCategorySimpleDto.isSuperCategory()) break; categoryList.remove(0); - // 자식 카테고리인경우 Category cCategory = null; - // 카테고리가 기존에 존재 x - if (subCategorySimpleDto.getId() == null) { - cCategory = createNewCategory(subCategorySimpleDto, pCategory.getTitle()); - } - // 카테고리가 기존에 존재 o + if (subCategorySimpleDto.isNewCategory()) cCategory = createNewCategory(subCategorySimpleDto, pCategory.getTitle()); else { - for (int i = 0; i < categoryListFromDb.size(); i++) { - if (categoryListFromDb.get(i).getId().equals(subCategorySimpleDto.getId())) { - cCategory = categoryListFromDb.get(i); - categoryListFromDb.remove(i); - break; - } - } - cCategory.updateCategory( - subCategorySimpleDto.getTitle(), - subCategorySimpleDto.getTier(), - subCategorySimpleDto.getPOrder(), - subCategorySimpleDto.getCOrder(), - pCategory); + cCategory = findMatchingCategory(categoryListFromDb, subCategorySimpleDto, cCategory); + cCategory.updateCategory(subCategorySimpleDto.getTitle(), subCategorySimpleDto.getTier(), subCategorySimpleDto.getPOrder(), subCategorySimpleDto.getCOrder(), pCategory); } } } @@ -118,6 +81,18 @@ public class CategoryService implements CategoryUseCase { // 3-3 불일치 카테고리 전부 삭제 categoryRepositoryPort.deleteAll(categoryListFromDb); } + + private Category findMatchingCategory(List categoryListFromDb, CategorySimpleDto categorySimpleDto, Category category) { + for (int i = 0; i < categoryListFromDb.size(); i++) { + if (categoryListFromDb.get(i).getId().equals(categorySimpleDto.getId())) { + category = categoryListFromDb.get(i); + categoryListFromDb.remove(i); + break; + } + } + return category; + } + /* - 새로운 카테고리 생성하기 - 상위 카테고리 존재 유무 분기 diff --git a/src/main/java/myblog/blog/category/appliacation/port/incomming/response/CategorySimpleDto.java b/src/main/java/myblog/blog/category/appliacation/port/incomming/response/CategorySimpleDto.java index ea97d7e..3f5b879 100644 --- a/src/main/java/myblog/blog/category/appliacation/port/incomming/response/CategorySimpleDto.java +++ b/src/main/java/myblog/blog/category/appliacation/port/incomming/response/CategorySimpleDto.java @@ -50,4 +50,10 @@ public class CategorySimpleDto implements Cloneable { } } } + public boolean isSuperCategory(){ + return tier == 1; + } + public boolean isNewCategory(){ + return id == null; + } }