diff --git a/src/main/java/run/halo/app/controller/content/ContentCategoryController.java b/src/main/java/run/halo/app/controller/content/ContentCategoryController.java index e85fb98be..e713fd34a 100644 --- a/src/main/java/run/halo/app/controller/content/ContentCategoryController.java +++ b/src/main/java/run/halo/app/controller/content/ContentCategoryController.java @@ -85,7 +85,7 @@ public class ContentCategoryController { @PathVariable("page") Integer page, @SortDefault(sort = "createTime", direction = DESC) Sort sort) { // Get category by slug name - final Category category = categoryService.getBySlugName(slugName); + final Category category = categoryService.getBySlugNameOfNonNull(slugName); final Pageable pageable = PageRequest.of(page - 1, optionService.getPostPageSize(), sort); Page postPage = postCategoryService.pagePostBy(category.getId(), pageable); diff --git a/src/main/java/run/halo/app/controller/content/api/CategoryController.java b/src/main/java/run/halo/app/controller/content/api/CategoryController.java index 1be79ec43..be62bbdeb 100644 --- a/src/main/java/run/halo/app/controller/content/api/CategoryController.java +++ b/src/main/java/run/halo/app/controller/content/api/CategoryController.java @@ -58,7 +58,7 @@ public class CategoryController { public Page listPostsBy(@PathVariable("slugName") String slugName, @PageableDefault(sort = "updateTime", direction = DESC) Pageable pageable) { // Get category by slug name - Category category = categoryService.getBySlugName(slugName); + Category category = categoryService.getBySlugNameOfNonNull(slugName); Page postPage = postCategoryService.pagePostBy(category.getId(), pageable); return postService.convertToSimple(postPage); diff --git a/src/main/java/run/halo/app/service/AdminService.java b/src/main/java/run/halo/app/service/AdminService.java index 5a489c291..d8f1b054f 100644 --- a/src/main/java/run/halo/app/service/AdminService.java +++ b/src/main/java/run/halo/app/service/AdminService.java @@ -7,11 +7,11 @@ import run.halo.app.model.params.LoginParam; import run.halo.app.security.token.AuthToken; /** - * Admin service. + * Admin service interface. * * @author johnniang * @author ryanwang - * @date 19-4-29 + * @date 2019-04-29 */ public interface AdminService { diff --git a/src/main/java/run/halo/app/service/AttachmentService.java b/src/main/java/run/halo/app/service/AttachmentService.java index e98cf7bf2..3d8360348 100644 --- a/src/main/java/run/halo/app/service/AttachmentService.java +++ b/src/main/java/run/halo/app/service/AttachmentService.java @@ -17,6 +17,7 @@ import java.util.List; * Attachment service. * * @author johnniang + * @date : 2019-03-14 */ public interface AttachmentService extends CrudService { diff --git a/src/main/java/run/halo/app/service/BackupService.java b/src/main/java/run/halo/app/service/BackupService.java index 6426fa0c6..eefc8dccc 100644 --- a/src/main/java/run/halo/app/service/BackupService.java +++ b/src/main/java/run/halo/app/service/BackupService.java @@ -9,7 +9,7 @@ import java.io.IOException; * Backup service interface. * * @author johnniang - * @date 19-4-26 + * @date 2019-04-26 */ public interface BackupService { diff --git a/src/main/java/run/halo/app/service/CategoryService.java b/src/main/java/run/halo/app/service/CategoryService.java index 7de4e678f..130c291e1 100755 --- a/src/main/java/run/halo/app/service/CategoryService.java +++ b/src/main/java/run/halo/app/service/CategoryService.java @@ -15,6 +15,8 @@ import java.util.List; * Category service. * * @author johnniang + * @author ryanwang + * @date : 2019-03-14 */ public interface CategoryService extends CrudService { @@ -36,6 +38,15 @@ public interface CategoryService extends CrudService { @NonNull Category getBySlugName(@NonNull String slugName); + /** + * Get category by slug name + * + * @param slugName slug name + * @return Category + */ + @NonNull + Category getBySlugNameOfNonNull(String slugName); + /** * Get Category by name. * diff --git a/src/main/java/run/halo/app/service/JournalCommentService.java b/src/main/java/run/halo/app/service/JournalCommentService.java index 2267c964c..3adb1a44f 100644 --- a/src/main/java/run/halo/app/service/JournalCommentService.java +++ b/src/main/java/run/halo/app/service/JournalCommentService.java @@ -13,7 +13,7 @@ import java.util.List; * Journal comment service interface. * * @author johnniang - * @date 19-4-25 + * @date 2019-04-25 */ public interface JournalCommentService extends BaseCommentService { diff --git a/src/main/java/run/halo/app/service/JournalService.java b/src/main/java/run/halo/app/service/JournalService.java index 4194e92ed..080ab6068 100644 --- a/src/main/java/run/halo/app/service/JournalService.java +++ b/src/main/java/run/halo/app/service/JournalService.java @@ -18,7 +18,7 @@ import java.util.List; * * @author johnniang * @author ryanwang - * @date 19-4-24 + * @date 2019-04-24 */ public interface JournalService extends CrudService { diff --git a/src/main/java/run/halo/app/service/LinkService.java b/src/main/java/run/halo/app/service/LinkService.java index de2d9591b..da03d9cdb 100755 --- a/src/main/java/run/halo/app/service/LinkService.java +++ b/src/main/java/run/halo/app/service/LinkService.java @@ -11,9 +11,10 @@ import run.halo.app.service.base.CrudService; import java.util.List; /** - * Link service. + * Link service interface. * * @author johnniang + * @date 2019-03-14 */ public interface LinkService extends CrudService { diff --git a/src/main/java/run/halo/app/service/LogService.java b/src/main/java/run/halo/app/service/LogService.java index 5e93127cc..7b3405670 100644 --- a/src/main/java/run/halo/app/service/LogService.java +++ b/src/main/java/run/halo/app/service/LogService.java @@ -6,9 +6,10 @@ import run.halo.app.model.entity.Log; import run.halo.app.service.base.CrudService; /** - * Log service. + * Log service interface. * * @author johnniang + * @date 2019-03-14 */ public interface LogService extends CrudService { diff --git a/src/main/java/run/halo/app/service/MailService.java b/src/main/java/run/halo/app/service/MailService.java index 4c109dbb9..5d6dc5d13 100644 --- a/src/main/java/run/halo/app/service/MailService.java +++ b/src/main/java/run/halo/app/service/MailService.java @@ -3,10 +3,10 @@ package run.halo.app.service; import java.util.Map; /** - * Mail server + * Mail service interface. * * @author ryanwang - * @date : 2019-03-17 + * @date 2019-03-17 */ public interface MailService { diff --git a/src/main/java/run/halo/app/service/MenuService.java b/src/main/java/run/halo/app/service/MenuService.java index 8f099d8e1..72135eef3 100644 --- a/src/main/java/run/halo/app/service/MenuService.java +++ b/src/main/java/run/halo/app/service/MenuService.java @@ -11,10 +11,11 @@ import run.halo.app.service.base.CrudService; import java.util.List; /** - * Menu service. + * Menu service interface. * * @author johnniang * @author ryanwang + * @date 2019-03-14 */ public interface MenuService extends CrudService { diff --git a/src/main/java/run/halo/app/service/OptionService.java b/src/main/java/run/halo/app/service/OptionService.java index 5658acd21..7f7c49389 100755 --- a/src/main/java/run/halo/app/service/OptionService.java +++ b/src/main/java/run/halo/app/service/OptionService.java @@ -18,9 +18,10 @@ import java.util.Map; import java.util.Optional; /** - * Option service. + * Option service interface. * * @author johnniang + * @date 2019-03-14 */ public interface OptionService extends CrudService { diff --git a/src/main/java/run/halo/app/service/PhotoService.java b/src/main/java/run/halo/app/service/PhotoService.java index 88e2008d0..fb3759fdd 100644 --- a/src/main/java/run/halo/app/service/PhotoService.java +++ b/src/main/java/run/halo/app/service/PhotoService.java @@ -14,9 +14,10 @@ import run.halo.app.service.base.CrudService; import java.util.List; /** - * Photo service. + * Photo service interface. * * @author johnniang + * @date 2019-03-14 */ public interface PhotoService extends CrudService { diff --git a/src/main/java/run/halo/app/service/PostCategoryService.java b/src/main/java/run/halo/app/service/PostCategoryService.java index 9fb73b584..0f7908eca 100644 --- a/src/main/java/run/halo/app/service/PostCategoryService.java +++ b/src/main/java/run/halo/app/service/PostCategoryService.java @@ -21,7 +21,7 @@ import java.util.Set; * Post category service interface. * * @author johnniang - * @date 3/19/19 + * @date 2019-03-19 */ public interface PostCategoryService extends CrudService { diff --git a/src/main/java/run/halo/app/service/PostCommentService.java b/src/main/java/run/halo/app/service/PostCommentService.java index a0e55c3b1..a55c09a03 100644 --- a/src/main/java/run/halo/app/service/PostCommentService.java +++ b/src/main/java/run/halo/app/service/PostCommentService.java @@ -12,9 +12,10 @@ import run.halo.app.service.base.BaseCommentService; import java.util.List; /** - * PostComment service. + * Post comment service interface. * * @author johnniang + * @date 2019-03-14 */ public interface PostCommentService extends BaseCommentService { diff --git a/src/main/java/run/halo/app/service/PostService.java b/src/main/java/run/halo/app/service/PostService.java index 8368fef2a..bedf523c3 100755 --- a/src/main/java/run/halo/app/service/PostService.java +++ b/src/main/java/run/halo/app/service/PostService.java @@ -17,10 +17,11 @@ import java.util.List; import java.util.Set; /** - * Post service. + * Post service interface. * * @author johnniang * @author ryanwang + * @date 2019-03-14 */ public interface PostService extends BasePostService { diff --git a/src/main/java/run/halo/app/service/PostTagService.java b/src/main/java/run/halo/app/service/PostTagService.java index deb2194cb..8cfb8e770 100644 --- a/src/main/java/run/halo/app/service/PostTagService.java +++ b/src/main/java/run/halo/app/service/PostTagService.java @@ -21,7 +21,7 @@ import java.util.Set; * Post tag service interface. * * @author johnniang - * @date 3/19/19 + * @date 2019-03-19 */ public interface PostTagService extends CrudService { diff --git a/src/main/java/run/halo/app/service/RecoveryService.java b/src/main/java/run/halo/app/service/RecoveryService.java index e4ace0e75..0a495a376 100644 --- a/src/main/java/run/halo/app/service/RecoveryService.java +++ b/src/main/java/run/halo/app/service/RecoveryService.java @@ -7,7 +7,7 @@ import org.springframework.web.multipart.MultipartFile; * Recovery service interface. * * @author johnniang - * @date 19-4-26 + * @date 2019-04-26 */ public interface RecoveryService { diff --git a/src/main/java/run/halo/app/service/SheetCommentService.java b/src/main/java/run/halo/app/service/SheetCommentService.java index a63df91da..dea4a1931 100644 --- a/src/main/java/run/halo/app/service/SheetCommentService.java +++ b/src/main/java/run/halo/app/service/SheetCommentService.java @@ -13,7 +13,7 @@ import java.util.List; * Sheet comment service interface. * * @author johnniang - * @date 19-4-24 + * @date 2019-04-24 */ public interface SheetCommentService extends BaseCommentService { diff --git a/src/main/java/run/halo/app/service/SheetService.java b/src/main/java/run/halo/app/service/SheetService.java index 5e0b206d0..be3bbb26e 100644 --- a/src/main/java/run/halo/app/service/SheetService.java +++ b/src/main/java/run/halo/app/service/SheetService.java @@ -15,7 +15,7 @@ import java.util.List; * * @author johnniang * @author ryanwang - * @date 19-4-24 + * @date 2019-04-24 */ public interface SheetService extends BasePostService { diff --git a/src/main/java/run/halo/app/service/TagService.java b/src/main/java/run/halo/app/service/TagService.java index afd05df33..d9d1e02a1 100644 --- a/src/main/java/run/halo/app/service/TagService.java +++ b/src/main/java/run/halo/app/service/TagService.java @@ -8,11 +8,12 @@ import run.halo.app.service.base.CrudService; import java.util.List; - /** - * Tag service. + * Tag service interface. * * @author johnniang + * @author ryanwang + * @date 2019-03-14 */ public interface TagService extends CrudService { @@ -25,6 +26,15 @@ public interface TagService extends CrudService { @NonNull Tag getBySlugNameOfNonNull(@NonNull String slugName); + /** + * Get tag by slug name + * + * @param slugName slug name + * @return tag + */ + @NonNull + Tag getBySlugName(@NonNull String slugName); + /** * Get tag by tag name. * diff --git a/src/main/java/run/halo/app/service/ThemeService.java b/src/main/java/run/halo/app/service/ThemeService.java index 1835e835d..6ad65d68d 100644 --- a/src/main/java/run/halo/app/service/ThemeService.java +++ b/src/main/java/run/halo/app/service/ThemeService.java @@ -14,8 +14,10 @@ import java.util.Optional; import java.util.Set; /** + * Theme service interface. + * * @author ryanwang - * @date : 2019/3/26 + * @date 2019-03-26 */ public interface ThemeService { diff --git a/src/main/java/run/halo/app/service/ThemeSettingService.java b/src/main/java/run/halo/app/service/ThemeSettingService.java index 7cdd35404..bec2c5af1 100644 --- a/src/main/java/run/halo/app/service/ThemeSettingService.java +++ b/src/main/java/run/halo/app/service/ThemeSettingService.java @@ -12,7 +12,7 @@ import java.util.Map; * Theme setting service interface. * * @author johnniang - * @date 4/8/19 + * @date 2019-04-08 */ public interface ThemeSettingService { diff --git a/src/main/java/run/halo/app/service/TraceService.java b/src/main/java/run/halo/app/service/TraceService.java index 586041b89..915152a33 100644 --- a/src/main/java/run/halo/app/service/TraceService.java +++ b/src/main/java/run/halo/app/service/TraceService.java @@ -9,7 +9,7 @@ import java.util.List; * Trace service interface. * * @author johnniang - * @date 19-6-18 + * @date 2019-06-18 */ public interface TraceService { diff --git a/src/main/java/run/halo/app/service/UserService.java b/src/main/java/run/halo/app/service/UserService.java index ec5c4bab4..3f2563fd4 100755 --- a/src/main/java/run/halo/app/service/UserService.java +++ b/src/main/java/run/halo/app/service/UserService.java @@ -11,9 +11,10 @@ import run.halo.app.service.base.CrudService; import java.util.Optional; /** - * User service. + * User service interface. * * @author johnniang + * @date 2019-03-14 */ public interface UserService extends CrudService { diff --git a/src/main/java/run/halo/app/service/impl/AdminServiceImpl.java b/src/main/java/run/halo/app/service/impl/AdminServiceImpl.java index c21ea412c..801150360 100644 --- a/src/main/java/run/halo/app/service/impl/AdminServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/AdminServiceImpl.java @@ -51,7 +51,7 @@ import static run.halo.app.model.support.HaloConst.*; * * @author johnniang * @author ryanwang - * @date 19-4-29 + * @date 2019-04-29 */ @Slf4j @Service diff --git a/src/main/java/run/halo/app/service/impl/AttachmentServiceImpl.java b/src/main/java/run/halo/app/service/impl/AttachmentServiceImpl.java index 86715c4e2..feb5c7ddb 100644 --- a/src/main/java/run/halo/app/service/impl/AttachmentServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/AttachmentServiceImpl.java @@ -32,6 +32,7 @@ import java.util.Objects; * AttachmentService implementation * * @author ryanwang + * @author johnniang * @date : 2019-03-14 */ @Slf4j diff --git a/src/main/java/run/halo/app/service/impl/BackupServiceImpl.java b/src/main/java/run/halo/app/service/impl/BackupServiceImpl.java index 483b6308a..ed9133bf7 100644 --- a/src/main/java/run/halo/app/service/impl/BackupServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/BackupServiceImpl.java @@ -14,7 +14,7 @@ import java.nio.charset.StandardCharsets; * Backup service implementation. * * @author johnniang - * @date 19-4-26 + * @date 2019-04-26 */ @Service public class BackupServiceImpl implements BackupService { diff --git a/src/main/java/run/halo/app/service/impl/BaseCommentServiceImpl.java b/src/main/java/run/halo/app/service/impl/BaseCommentServiceImpl.java index 860019d77..14c030324 100644 --- a/src/main/java/run/halo/app/service/impl/BaseCommentServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/BaseCommentServiceImpl.java @@ -51,7 +51,7 @@ import java.util.stream.Collectors; * Base comment service implementation. * * @author johnniang - * @date 19-4-24 + * @date 2019-04-24 */ @Slf4j public abstract class BaseCommentServiceImpl extends AbstractCrudService implements BaseCommentService { diff --git a/src/main/java/run/halo/app/service/impl/BasePostServiceImpl.java b/src/main/java/run/halo/app/service/impl/BasePostServiceImpl.java index 7e9d05435..b58d17f78 100644 --- a/src/main/java/run/halo/app/service/impl/BasePostServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/BasePostServiceImpl.java @@ -40,7 +40,7 @@ import static org.springframework.data.domain.Sort.Direction.DESC; * Base post service implementation. * * @author johnniang - * @date 19-4-24 + * @date 2019-04-24 */ @Slf4j public abstract class BasePostServiceImpl extends AbstractCrudService implements BasePostService { diff --git a/src/main/java/run/halo/app/service/impl/CategoryServiceImpl.java b/src/main/java/run/halo/app/service/impl/CategoryServiceImpl.java index c66bf0b8a..647620a37 100644 --- a/src/main/java/run/halo/app/service/impl/CategoryServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/CategoryServiceImpl.java @@ -24,9 +24,10 @@ import java.util.List; import java.util.stream.Collectors; /** - * CategoryService implementation class + * CategoryService implementation class. * * @author ryanwang + * @author johnniang * @date : 2019-03-14 */ @Slf4j @@ -146,7 +147,12 @@ public class CategoryServiceImpl extends AbstractCrudService @Override public Category getBySlugName(String slugName) { - return categoryRepository.getBySlugName(slugName).orElseThrow(() -> new NotFoundException("该分类已存在").setErrorData(slugName)); + return categoryRepository.getBySlugName(slugName).orElse(null); + } + + @Override + public Category getBySlugNameOfNonNull(String slugName) { + return categoryRepository.getBySlugName(slugName).orElseThrow(() -> new NotFoundException("该分类不存在").setErrorData(slugName)); } @Override diff --git a/src/main/java/run/halo/app/service/impl/JournalCommentServiceImpl.java b/src/main/java/run/halo/app/service/impl/JournalCommentServiceImpl.java index 7c54da67f..25928445a 100644 --- a/src/main/java/run/halo/app/service/impl/JournalCommentServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/JournalCommentServiceImpl.java @@ -28,7 +28,7 @@ import java.util.stream.Collectors; * Journal comment service implementation. * * @author johnniang - * @date 19-4-25 + * @date 2019-04-25 */ @Service public class JournalCommentServiceImpl extends BaseCommentServiceImpl implements JournalCommentService { diff --git a/src/main/java/run/halo/app/service/impl/JournalServiceImpl.java b/src/main/java/run/halo/app/service/impl/JournalServiceImpl.java index f974905f4..33b00fc29 100644 --- a/src/main/java/run/halo/app/service/impl/JournalServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/JournalServiceImpl.java @@ -29,7 +29,7 @@ import java.util.stream.Collectors; * * @author johnniang * @author ryanwang - * @date 19-4-24 + * @date 2019-04-24 */ @Service public class JournalServiceImpl extends AbstractCrudService implements JournalService { diff --git a/src/main/java/run/halo/app/service/impl/LinkServiceImpl.java b/src/main/java/run/halo/app/service/impl/LinkServiceImpl.java index b8affa596..20aa67d9f 100644 --- a/src/main/java/run/halo/app/service/impl/LinkServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/LinkServiceImpl.java @@ -24,7 +24,7 @@ import java.util.stream.Collectors; * LinkService implementation class * * @author ryanwang - * @date : 2019-03-14 + * @date 2019-03-14 */ @Service public class LinkServiceImpl extends AbstractCrudService implements LinkService { diff --git a/src/main/java/run/halo/app/service/impl/LogServiceImpl.java b/src/main/java/run/halo/app/service/impl/LogServiceImpl.java index 087c8de1b..086e23674 100644 --- a/src/main/java/run/halo/app/service/impl/LogServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/LogServiceImpl.java @@ -15,7 +15,7 @@ import run.halo.app.service.base.AbstractCrudService; * LogService implementation class * * @author ryanwang - * @date : 2019-03-14 + * @date 2019-03-14 */ @Service public class LogServiceImpl extends AbstractCrudService implements LogService { diff --git a/src/main/java/run/halo/app/service/impl/MailServiceImpl.java b/src/main/java/run/halo/app/service/impl/MailServiceImpl.java index 646c362e8..a2d58ca79 100644 --- a/src/main/java/run/halo/app/service/impl/MailServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/MailServiceImpl.java @@ -20,7 +20,7 @@ import java.util.Properties; * Mail service implementation. * * @author ryanwang - * @date : 2019-03-17 + * @date 2019-03-17 */ @Slf4j @Service diff --git a/src/main/java/run/halo/app/service/impl/MenuServiceImpl.java b/src/main/java/run/halo/app/service/impl/MenuServiceImpl.java index 67bb25df5..29aa71f65 100644 --- a/src/main/java/run/halo/app/service/impl/MenuServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/MenuServiceImpl.java @@ -21,10 +21,10 @@ import java.util.List; import java.util.stream.Collectors; /** - * MenuService implementation class + * MenuService implementation class. * * @author ryanwang - * @date : 2019-03-14 + * @date 2019-03-14 */ @Service public class MenuServiceImpl extends AbstractCrudService implements MenuService { diff --git a/src/main/java/run/halo/app/service/impl/OptionServiceImpl.java b/src/main/java/run/halo/app/service/impl/OptionServiceImpl.java index 6ee06ff78..cb0966039 100644 --- a/src/main/java/run/halo/app/service/impl/OptionServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/OptionServiceImpl.java @@ -30,7 +30,7 @@ import java.util.*; * OptionService implementation class * * @author ryanwang - * @date : 2019-03-14 + * @date 2019-03-14 */ @Slf4j @Service diff --git a/src/main/java/run/halo/app/service/impl/PhotoServiceImpl.java b/src/main/java/run/halo/app/service/impl/PhotoServiceImpl.java index 35e0749c2..f3f82a1c2 100644 --- a/src/main/java/run/halo/app/service/impl/PhotoServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/PhotoServiceImpl.java @@ -29,7 +29,7 @@ import java.util.stream.Collectors; * PhotoService implementation class * * @author ryanwang - * @date : 2019-03-14 + * @date 2019-03-14 */ @Service public class PhotoServiceImpl extends AbstractCrudService implements PhotoService { diff --git a/src/main/java/run/halo/app/service/impl/PostCategoryServiceImpl.java b/src/main/java/run/halo/app/service/impl/PostCategoryServiceImpl.java index 90ce4d109..a60f6b2bf 100644 --- a/src/main/java/run/halo/app/service/impl/PostCategoryServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/PostCategoryServiceImpl.java @@ -25,7 +25,7 @@ import java.util.stream.Collectors; * Post category service implementation. * * @author johnniang - * @date 3/19/19 + * @date 2019-03-19 */ @Service public class PostCategoryServiceImpl extends AbstractCrudService implements PostCategoryService { diff --git a/src/main/java/run/halo/app/service/impl/PostCommentServiceImpl.java b/src/main/java/run/halo/app/service/impl/PostCommentServiceImpl.java index 1b729dd8e..670fab69a 100644 --- a/src/main/java/run/halo/app/service/impl/PostCommentServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/PostCommentServiceImpl.java @@ -32,7 +32,8 @@ import java.util.stream.Collectors; * PostCommentService implementation class * * @author ryanwang - * @date : 2019-03-14 + * @author johnniang + * @date 2019-03-14 */ @Slf4j @Service diff --git a/src/main/java/run/halo/app/service/impl/PostServiceImpl.java b/src/main/java/run/halo/app/service/impl/PostServiceImpl.java index d5c81bf31..7493bfa89 100644 --- a/src/main/java/run/halo/app/service/impl/PostServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/PostServiceImpl.java @@ -45,6 +45,7 @@ import static org.springframework.data.domain.Sort.Direction.DESC; * * @author johnniang * @author ryanwang + * @date 2019-03-14 */ @Slf4j @Service diff --git a/src/main/java/run/halo/app/service/impl/PostTagServiceImpl.java b/src/main/java/run/halo/app/service/impl/PostTagServiceImpl.java index 67c2141e0..2effa4284 100644 --- a/src/main/java/run/halo/app/service/impl/PostTagServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/PostTagServiceImpl.java @@ -25,7 +25,7 @@ import java.util.stream.Collectors; * Post tag service implementation. * * @author johnniang - * @date 3/19/19 + * @date 2019-03-19 */ @Service public class PostTagServiceImpl extends AbstractCrudService implements PostTagService { diff --git a/src/main/java/run/halo/app/service/impl/RecoveryServiceImpl.java b/src/main/java/run/halo/app/service/impl/RecoveryServiceImpl.java index 7199f55b0..ed63bb396 100644 --- a/src/main/java/run/halo/app/service/impl/RecoveryServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/RecoveryServiceImpl.java @@ -33,7 +33,8 @@ import java.util.stream.Collectors; * Recovery service implementation. * * @author johnniang - * @date 19-4-26 + * @author ryanwang + * @date 2019-04-26 */ @Slf4j @Service @@ -64,6 +65,10 @@ public class RecoveryServiceImpl implements RecoveryService { private final PhotoService photoService; + private final PostCategoryService postCategoryService; + + private final PostTagService postTagService; + public RecoveryServiceImpl(AttachmentService attachmentService, PostService postService, LinkService linkService, @@ -75,7 +80,9 @@ public class RecoveryServiceImpl implements RecoveryService { SheetCommentService sheetCommentService, SheetCommentRepository sheetCommentRepository, SheetService sheetService, - PhotoService photoService) { + PhotoService photoService, + PostCategoryService postCategoryService, + PostTagService postTagService) { this.attachmentService = attachmentService; this.postService = postService; this.linkService = linkService; @@ -88,6 +95,8 @@ public class RecoveryServiceImpl implements RecoveryService { this.sheetCommentRepository = sheetCommentRepository; this.sheetService = sheetService; this.photoService = photoService; + this.postCategoryService = postCategoryService; + this.postTagService = postTagService; } @Override @@ -215,12 +224,20 @@ public class RecoveryServiceImpl implements RecoveryService { Post createdPost = postService.createOrUpdateBy(post); Object commentsObject = postMap.get("comments"); + Object categoriesObject = postMap.get("categories"); + Object tagsObject = postMap.get("tags"); // Handle comments List baseComments = handleComment(commentsObject, createdPost.getId()); - // TODO Handle categories + // Handle categories + List categories = handleCategories(categoriesObject, createdPost.getId()); - // TODO Handle tags + log.debug("Migrated categories of post [{}]: [{}]", categories, createdPost.getId()); + + // Handle tags + List tags = handleTags(tagsObject, createdPost.getId()); + + log.debug("Migrated tags of post [{}]: [{}]", tags, createdPost.getId()); List postComments = baseComments.stream() .map(baseComment -> BeanUtils.transformFrom(baseComment, PostComment.class)) @@ -376,6 +393,96 @@ public class RecoveryServiceImpl implements RecoveryService { return result; } + @NonNull + private List handleCategories(@Nullable Object categoriesObject, @NonNull Integer postId) { + Assert.notNull(postId, "Post id must not be null"); + + if (!(categoriesObject instanceof List)) { + return Collections.emptyList(); + } + + List categoryObjectList = (List) categoriesObject; + + List result = new LinkedList<>(); + + categoryObjectList.forEach(categoryObject -> { + if (!(categoryObject instanceof Map)) { + return; + } + + Map categoryMap = (Map) categoryObject; + + String slugName = categoryMap.getOrDefault("cateUrl", "").toString(); + + Category category = categoryService.getBySlugName(slugName); + + if (null == category) { + category = new Category(); + category.setName(categoryMap.getOrDefault("cateName", "").toString()); + category.setSlugName(slugName); + category.setDescription(categoryMap.getOrDefault("cateDesc", "").toString()); + category = categoryService.create(category); + } + + PostCategory postCategory = new PostCategory(); + postCategory.setCategoryId(category.getId()); + postCategory.setPostId(postId); + postCategoryService.create(postCategory); + + try { + result.add(category); + } catch (Exception e) { + log.warn("Failed to migrate a category", e); + } + }); + + return result; + } + + @NonNull + private List handleTags(@Nullable Object tagsObject, @NonNull Integer postId) { + Assert.notNull(postId, "Post id must not be null"); + + if (!(tagsObject instanceof List)) { + return Collections.emptyList(); + } + + List tagObjectList = (List) tagsObject; + + List result = new LinkedList<>(); + + tagObjectList.forEach(tagObject -> { + if (!(tagObject instanceof Map)) { + return; + } + + Map tagMap = (Map) tagObject; + + String slugName = tagMap.getOrDefault("tagUrl", "").toString(); + + Tag tag = tagService.getBySlugName(slugName); + + if (null == tag) { + tag = new Tag(); + tag.setName(tagMap.getOrDefault("tagName", "").toString()); + tag.setSlugName(slugName); + tag = tagService.create(tag); + } + + PostTag postTag = new PostTag(); + postTag.setTagId(tag.getId()); + postTag.setPostId(postId); + postTagService.create(postTag); + + try { + result.add(tag); + } catch (Exception e) { + log.warn("Failed to migrate a tag", e); + } + }); + + return result; + } @NonNull private List handleMenus(@Nullable Object menusObject) { diff --git a/src/main/java/run/halo/app/service/impl/SheetCommentServiceImpl.java b/src/main/java/run/halo/app/service/impl/SheetCommentServiceImpl.java index 17f4fdd50..34e4e1c0a 100644 --- a/src/main/java/run/halo/app/service/impl/SheetCommentServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/SheetCommentServiceImpl.java @@ -29,7 +29,7 @@ import java.util.stream.Collectors; * Sheet comment service implementation. * * @author johnniang - * @date 19-4-24 + * @date 2019-04-24 */ @Service public class SheetCommentServiceImpl extends BaseCommentServiceImpl implements SheetCommentService { diff --git a/src/main/java/run/halo/app/service/impl/SheetServiceImpl.java b/src/main/java/run/halo/app/service/impl/SheetServiceImpl.java index 085eab05c..ddb5f9e32 100644 --- a/src/main/java/run/halo/app/service/impl/SheetServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/SheetServiceImpl.java @@ -31,7 +31,7 @@ import java.util.Set; * * @author johnniang * @author ryanwang - * @date 19-4-24 + * @date 2019-04-24 */ @Service public class SheetServiceImpl extends BasePostServiceImpl implements SheetService { diff --git a/src/main/java/run/halo/app/service/impl/TagServiceImpl.java b/src/main/java/run/halo/app/service/impl/TagServiceImpl.java index b783a73fc..a8f46fcae 100644 --- a/src/main/java/run/halo/app/service/impl/TagServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/TagServiceImpl.java @@ -17,10 +17,11 @@ import java.util.List; import java.util.stream.Collectors; /** - * TagService implementation class + * TagService implementation class. * + * @author johnniang * @author ryanwang - * @date : 2019-03-14 + * @date 2019-03-14 */ @Slf4j @Service @@ -51,9 +52,13 @@ public class TagServiceImpl extends AbstractCrudService implements @Override public Tag getBySlugNameOfNonNull(String slugName) { - return tagRepository.getBySlugName(slugName).orElseThrow(() -> new NotFoundException("该标签已存在").setErrorData(slugName)); + return tagRepository.getBySlugName(slugName).orElseThrow(() -> new NotFoundException("该标签不存在").setErrorData(slugName)); } + @Override + public Tag getBySlugName(String slugName) { + return tagRepository.getBySlugName(slugName).orElse(null); + } @Override public Tag getByName(String name) { diff --git a/src/main/java/run/halo/app/service/impl/ThemeServiceImpl.java b/src/main/java/run/halo/app/service/impl/ThemeServiceImpl.java index 6ec4673ff..9c61f8ab5 100644 --- a/src/main/java/run/halo/app/service/impl/ThemeServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/ThemeServiceImpl.java @@ -53,7 +53,7 @@ import static run.halo.app.model.support.HaloConst.DEFAULT_THEME_ID; * Theme service implementation. * * @author ryanwang - * @date : 2019/3/26 + * @date 2019-03-26 */ @Slf4j @Service diff --git a/src/main/java/run/halo/app/service/impl/ThemeSettingServiceImpl.java b/src/main/java/run/halo/app/service/impl/ThemeSettingServiceImpl.java index b9f5cd0b5..6460468ba 100644 --- a/src/main/java/run/halo/app/service/impl/ThemeSettingServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/ThemeSettingServiceImpl.java @@ -24,7 +24,7 @@ import java.util.*; * Theme setting service implementation. * * @author johnniang - * @date 4/8/19 + * @date 2019-04-08 */ @Slf4j @Service diff --git a/src/main/java/run/halo/app/service/impl/TraceServiceImpl.java b/src/main/java/run/halo/app/service/impl/TraceServiceImpl.java index abaee5cb6..0304eaa8d 100644 --- a/src/main/java/run/halo/app/service/impl/TraceServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/TraceServiceImpl.java @@ -2,18 +2,16 @@ package run.halo.app.service.impl; import org.springframework.boot.actuate.trace.http.HttpTrace; import org.springframework.boot.actuate.trace.http.HttpTraceRepository; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageImpl; -import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; -import org.springframework.util.Assert; import run.halo.app.service.TraceService; import java.util.List; /** + * TraceService implementation class. + * * @author johnniang - * @date 19-6-18 + * @date 2019-06-18 */ @Service public class TraceServiceImpl implements TraceService { diff --git a/src/main/java/run/halo/app/service/impl/UserServiceImpl.java b/src/main/java/run/halo/app/service/impl/UserServiceImpl.java index 28879fe26..7905e1b14 100644 --- a/src/main/java/run/halo/app/service/impl/UserServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/UserServiceImpl.java @@ -31,10 +31,11 @@ import java.util.Optional; import java.util.concurrent.TimeUnit; /** - * UserService implementation class + * UserService implementation class. * * @author ryanwang - * @date : 2019-03-14 + * @author johnniang + * @date 2019-03-14 */ @Service public class UserServiceImpl extends AbstractCrudService implements UserService {