diff --git a/ruoyi-modules/ruoyi-blog/src/main/java/com/ruoyi/blog/domain/BlogPostCategories.java b/ruoyi-modules/ruoyi-blog/src/main/java/com/ruoyi/blog/domain/BlogPostCategories.java new file mode 100644 index 0000000..43560c1 --- /dev/null +++ b/ruoyi-modules/ruoyi-blog/src/main/java/com/ruoyi/blog/domain/BlogPostCategories.java @@ -0,0 +1,33 @@ +package com.ruoyi.blog.domain; + +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.Table; +import lombok.*; +import com.ruoyi.common.orm.core.domain.BaseEntity; + +/** + * 文章分类关联对象 blog_post_categories + * + * @author huangge1199 + * 2024-09-10 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +@Table(value = "blog_post_categories") +public class BlogPostCategories extends BaseEntity +{ + /** */ + @Id + private Long id; + + /** 分类ID */ + private Long categoryId; + + /** 文章ID */ + private Long postId; + + +} diff --git a/ruoyi-modules/ruoyi-blog/src/main/java/com/ruoyi/blog/domain/BlogPosts.java b/ruoyi-modules/ruoyi-blog/src/main/java/com/ruoyi/blog/domain/BlogPosts.java index e32133b..880d2ed 100644 --- a/ruoyi-modules/ruoyi-blog/src/main/java/com/ruoyi/blog/domain/BlogPosts.java +++ b/ruoyi-modules/ruoyi-blog/src/main/java/com/ruoyi/blog/domain/BlogPosts.java @@ -39,7 +39,7 @@ public class BlogPosts extends BaseEntity private Long type; /** 状态,0:已发布,1:草稿,2:已删除,3:私密 */ - private Long status; + private String status; /** 总览 */ private String summary; diff --git a/ruoyi-modules/ruoyi-blog/src/main/java/com/ruoyi/blog/domain/bo/BlogPostsBo.java b/ruoyi-modules/ruoyi-blog/src/main/java/com/ruoyi/blog/domain/bo/BlogPostsBo.java index b8547ee..41fcbfb 100644 --- a/ruoyi-modules/ruoyi-blog/src/main/java/com/ruoyi/blog/domain/bo/BlogPostsBo.java +++ b/ruoyi-modules/ruoyi-blog/src/main/java/com/ruoyi/blog/domain/bo/BlogPostsBo.java @@ -56,7 +56,7 @@ public class BlogPostsBo extends BaseEntity /** * 状态,0:已发布,1:草稿,2:已删除,3:私密 */ - private Long status; + private String status; /** * 总览 @@ -75,6 +75,14 @@ public class BlogPostsBo extends BaseEntity private Long topPriority; - /** 博客文章内容信息 */ + /** + * 博客文章内容信息 + * */ private BlogContents blogContents; + + /** + * 博客分类集合 + */ + private List categories; + } diff --git a/ruoyi-modules/ruoyi-blog/src/main/java/com/ruoyi/blog/domain/vo/BlogPostsVo.java b/ruoyi-modules/ruoyi-blog/src/main/java/com/ruoyi/blog/domain/vo/BlogPostsVo.java index b3979f8..6133e8c 100644 --- a/ruoyi-modules/ruoyi-blog/src/main/java/com/ruoyi/blog/domain/vo/BlogPostsVo.java +++ b/ruoyi-modules/ruoyi-blog/src/main/java/com/ruoyi/blog/domain/vo/BlogPostsVo.java @@ -60,7 +60,7 @@ public class BlogPostsVo extends BaseEntity implements Serializable /** 状态,0:已发布,1:草稿,2:已删除,3:私密 */ @ExcelProperty(value = "状态,0:已发布,1:草稿,2:已删除,3:私密") - private Long status; + private String status; /** 总览 */ @ExcelProperty(value = "总览") @@ -87,4 +87,9 @@ public class BlogPostsVo extends BaseEntity implements Serializable @RelationOneToOne(selfField = "id", targetField = "postId") private BlogContents blogContents; + /** + * 博客分类集合 + */ + private List categories; + } diff --git a/ruoyi-modules/ruoyi-blog/src/main/java/com/ruoyi/blog/mapper/BlogPostCategoriesMapper.java b/ruoyi-modules/ruoyi-blog/src/main/java/com/ruoyi/blog/mapper/BlogPostCategoriesMapper.java new file mode 100644 index 0000000..e8f1969 --- /dev/null +++ b/ruoyi-modules/ruoyi-blog/src/main/java/com/ruoyi/blog/mapper/BlogPostCategoriesMapper.java @@ -0,0 +1,17 @@ +package com.ruoyi.blog.mapper; + +import com.mybatisflex.core.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import com.ruoyi.blog.domain.BlogPostCategories; + +/** + * 文章分类关联Mapper接口 + * + * @author huangge1199 + * 2024-09-10 + */ +@Mapper +public interface BlogPostCategoriesMapper extends BaseMapper +{ + +} diff --git a/ruoyi-modules/ruoyi-blog/src/main/java/com/ruoyi/blog/mapper/BlogPostsMapper.java b/ruoyi-modules/ruoyi-blog/src/main/java/com/ruoyi/blog/mapper/BlogPostsMapper.java index fb8f1dc..4efa724 100644 --- a/ruoyi-modules/ruoyi-blog/src/main/java/com/ruoyi/blog/mapper/BlogPostsMapper.java +++ b/ruoyi-modules/ruoyi-blog/src/main/java/com/ruoyi/blog/mapper/BlogPostsMapper.java @@ -1,6 +1,7 @@ package com.ruoyi.blog.mapper; import com.mybatisflex.core.BaseMapper; +import com.ruoyi.blog.domain.vo.BlogPostsVo; import org.apache.ibatis.annotations.Mapper; import com.ruoyi.blog.domain.BlogPosts; import com.ruoyi.blog.domain.BlogContents; @@ -14,5 +15,4 @@ import com.ruoyi.blog.domain.BlogContents; @Mapper public interface BlogPostsMapper extends BaseMapper { - } diff --git a/ruoyi-modules/ruoyi-blog/src/main/java/com/ruoyi/blog/service/impl/BlogPostsServiceImpl.java b/ruoyi-modules/ruoyi-blog/src/main/java/com/ruoyi/blog/service/impl/BlogPostsServiceImpl.java index aa737f0..8eec46f 100644 --- a/ruoyi-modules/ruoyi-blog/src/main/java/com/ruoyi/blog/service/impl/BlogPostsServiceImpl.java +++ b/ruoyi-modules/ruoyi-blog/src/main/java/com/ruoyi/blog/service/impl/BlogPostsServiceImpl.java @@ -7,6 +7,8 @@ import java.util.Map; import cn.hutool.core.util.ObjectUtil; import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.query.QueryWrapper; +import com.ruoyi.blog.domain.BlogPostCategories; +import com.ruoyi.blog.mapper.BlogPostCategoriesMapper; import com.ruoyi.common.core.utils.MapstructUtils; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.orm.core.page.PageQuery; @@ -31,6 +33,7 @@ import com.ruoyi.blog.domain.bo.BlogPostsBo; import com.ruoyi.blog.domain.vo.BlogPostsVo; import com.ruoyi.blog.service.IBlogPostsService; +import static com.ruoyi.blog.domain.table.BlogPostCategoriesTableDef.BLOG_POST_CATEGORIES; import static com.ruoyi.blog.domain.table.BlogPostsTableDef.BLOG_POSTS; /** @@ -45,6 +48,8 @@ public class BlogPostsServiceImpl extends BaseServiceImpl categories = blogPostCategoriesMapper.selectListByQuery( + QueryWrapper + .create() + .from(BLOG_POST_CATEGORIES) + .where(BLOG_POST_CATEGORIES.POST_ID.eq(id)) + ).stream().map(BlogPostCategories::getCategoryId).toList(); + blogPostsVo.setCategories(categories); + return blogPostsVo; } /** @@ -116,13 +128,20 @@ public class BlogPostsServiceImpl extends BaseServiceImpl0){ + long cnt = blogPostsMapper.selectCountByQuery(QueryWrapper.create().eq("title", blogPostsBo.getTitle())); + if (cnt > 0) { throw new Exception("标题已存在"); } BlogPosts blogPosts = MapstructUtils.convert(blogPostsBo, BlogPosts.class); - int inserted = blogPostsMapper.insert(blogPosts,false); + int inserted = blogPostsMapper.insert(blogPosts, false); if (inserted > 0 && ObjectUtil.isNotNull(blogPosts)) { + for (Long categoryId : blogPostsBo.getCategories()) { + BlogPostCategories blogPostCategories = BlogPostCategories.builder() + .postId(blogPosts.getId()) + .categoryId(categoryId) + .build(); + blogPostCategoriesMapper.insert(blogPostCategories, false); + } return insertBlogContents(blogPosts); } return false; @@ -141,8 +160,25 @@ public class BlogPostsServiceImpl extends BaseServiceImpl + + + + diff --git a/ruoyi-modules/ruoyi-blog/src/main/resources/mapper/blog/BlogPostsMapper.xml b/ruoyi-modules/ruoyi-blog/src/main/resources/mapper/blog/BlogPostsMapper.xml index 9e1f02e..e920508 100644 --- a/ruoyi-modules/ruoyi-blog/src/main/resources/mapper/blog/BlogPostsMapper.xml +++ b/ruoyi-modules/ruoyi-blog/src/main/resources/mapper/blog/BlogPostsMapper.xml @@ -3,5 +3,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - diff --git a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/domain.java.vm b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/domain.java.vm index cdb3a2e..7bfdcb9 100644 --- a/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/domain.java.vm +++ b/ruoyi-modules/ruoyi-generator/src/main/resources/vm/java/domain.java.vm @@ -28,6 +28,9 @@ import com.ruoyi.common.orm.core.domain.TreeEntity; #set($Entity="TreeEntity") #end @Data +@Builder +@AllArgsConstructor +@NoArgsConstructor @EqualsAndHashCode(callSuper = true) @Table(value = "${tableName}") public class ${ClassName} extends ${Entity}