Browse Source

更新 search-service blog

reghao 3 months ago
parent
commit
ce7638bf2c

+ 37 - 6
search/search-service/src/main/java/cn/reghao/tnb/search/app/blog/controller/ForegroundController.java → search/search-service/src/main/java/cn/reghao/tnb/search/app/blog/controller/BlogController.java

@@ -11,12 +11,15 @@ import cn.reghao.jutil.jdk.web.db.PageList;
 import cn.reghao.tnb.search.app.hibernate.HibernateQuery;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.servlet.http.HttpServletRequest;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Sort;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author reghao
@@ -25,15 +28,15 @@ import java.util.List;
 @Tag(name = "博客前台页面")
 @RestController
 @RequestMapping("/api/blog")
-public class ForegroundController /*extends BaseController */{
+public class BlogController /*extends BaseController */{
     private final CategoryService categoryService;
     private final ArticleQuery articleQuery;
     private final ArticleViewService articleViewService;
     private final HibernateQuery hibernateQuery;
     private final int pageSize = 10;
 
-    public ForegroundController(CategoryService categoryService, ArticleQuery articleQuery,
-                                ArticleViewService articleViewService, HibernateQuery hibernateQuery) {
+    public BlogController(CategoryService categoryService, ArticleQuery articleQuery,
+                          ArticleViewService articleViewService, HibernateQuery hibernateQuery) {
         this.categoryService = categoryService;
         this.articleQuery = articleQuery;
         this.articleViewService = articleViewService;
@@ -86,9 +89,27 @@ public class ForegroundController /*extends BaseController */{
 
     @Operation(summary = "某个分类/标签下的文章列表页面", description = "N")
     @GetMapping("/category/post")
-    public String tagPost(@RequestParam("type") String type,
-                          @RequestParam("name") String name,
-                          @RequestParam("pn") int pageNumber) {
+    public String tagPost(/*@RequestParam("type") String type1,
+                          @RequestParam("name") String name1,
+                          @RequestParam("pn") int pageNumber1,*/
+                          HttpServletRequest request) {
+        Map<String, String> map = getQuery(request);
+        String type = map.get("type");
+        if (type == null) {
+            return WebResult.failWithMsg("parameter type not exist");
+        }
+
+        String name = map.get("name");
+        if (name == null) {
+            return WebResult.failWithMsg("parameter name not exist");
+        }
+
+        String pn = map.get("pn");
+        if (pn == null) {
+            return WebResult.failWithMsg("parameter pn not exist");
+        }
+        int pageNumber = Integer.parseInt(pn);
+
         int typeInt = 0;
         if (type.equals("tag")) {
             typeInt = CategoryType.Tag.getValue();
@@ -103,6 +124,16 @@ public class ForegroundController /*extends BaseController */{
         return WebResult.success(pageList);
     }
 
+    private Map<String, String> getQuery(HttpServletRequest request) {
+        String queryString = request.getQueryString();
+        Map<String, String> map = new HashMap<>();
+        for (String param : queryString.split("&")) {
+            String[] paramArr = param.split("=");
+            map.put(paramArr[0], paramArr[1]);
+        }
+        return map;
+    }
+
     @Operation(summary = "文章归档列表页面", description = "N")
     @GetMapping("/archive")
     public String archive() {

+ 1 - 1
search/search-service/src/main/java/cn/reghao/tnb/search/app/blog/db/repository/ArticleRepository.java

@@ -16,7 +16,7 @@ import java.util.List;
  */
 public interface ArticleRepository extends JpaRepository<Article, Integer>, JpaSpecificationExecutor<Article> {
     int countByCategoryIdAndPostType(int categoryId, int postType);
-    Page<Article> findByPublishedIsTrueAndCategoryIdAndPostType(int categoryId, int postType, Pageable pageable);
+    Page<Article> findByCategoryIdAndPostType(int categoryId, int postType, Pageable pageable);
     Page<Article> findByPublishedIsTrueAndPostType(int postType, Pageable pageable);
     Article findByArticleId(String articleId);
     @Query("select new cn.reghao.tnb.search.app.blog.model.vo.QuestionCount(article.categoryId, count(article))\n" +

+ 0 - 26
search/search-service/src/main/java/cn/reghao/tnb/search/app/blog/db/repository/QuestionRepository.java

@@ -1,26 +0,0 @@
-package cn.reghao.tnb.search.app.blog.db.repository;
-
-import cn.reghao.tnb.search.app.blog.model.po.Question;
-import cn.reghao.tnb.search.app.blog.model.vo.QuestionCount;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.Pageable;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
-import org.springframework.data.jpa.repository.Query;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2024-01-28 13:17:47
- */
-@Deprecated
-public interface QuestionRepository extends JpaRepository<Question, Integer>, JpaSpecificationExecutor<Question> {
-    Question findByQuestionId(String questionId);
-
-    @Query("select new cn.reghao.tnb.search.app.blog.model.vo.QuestionCount(question.categoryId, count(question))\n" +
-            "from Question question\n" +
-            "group by question.categoryId \n" +
-            "order by count(question) desc")
-    List<QuestionCount> findQuestionCountByGroup();
-}

+ 0 - 14
search/search-service/src/main/java/cn/reghao/tnb/search/app/blog/model/po/Article.java

@@ -66,18 +66,4 @@ public class Article extends BaseEntity {
         this.postType = articleDto.getPostType();
         this.owner = UserContext.getUserId();
     }
-
-    public Article(Question question) {
-        this.articleId = question.getQuestionId();
-        this.title = question.getTitle();
-        this.excerpt = "";
-        this.content = question.getContent();
-        this.editor = "markdown";
-        this.categoryId = question.getCategoryId();
-        this.published = true;
-        this.publishAt = question.getPublishAt();
-        this.weight = question.getWeight();
-        this.postType = 2;
-        this.owner = UserContext.getUserId();
-    }
 }

+ 0 - 59
search/search-service/src/main/java/cn/reghao/tnb/search/app/blog/model/po/Question.java

@@ -1,59 +0,0 @@
-package cn.reghao.tnb.search.app.blog.model.po;
-
-import cn.reghao.tnb.common.auth.UserContext;
-import cn.reghao.tnb.search.app.blog.model.dto.ArticleDto;
-import cn.reghao.tnb.search.app.util.BaseEntity;
-import jakarta.persistence.Column;
-import jakarta.persistence.Entity;
-import jakarta.persistence.Table;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-import org.hibernate.search.engine.backend.types.Highlightable;
-import org.hibernate.search.engine.backend.types.Projectable;
-import org.hibernate.search.mapper.pojo.mapping.definition.annotation.FullTextField;
-import org.hibernate.search.mapper.pojo.mapping.definition.annotation.Indexed;
-import org.hibernate.search.mapper.pojo.mapping.definition.annotation.KeywordField;
-
-import java.time.LocalDateTime;
-
-/**
- * @author reghao
- * @date 2023-04-10 17:57:36
- */
-@NoArgsConstructor
-@Setter
-@Getter
-@Indexed(index = "question")
-@Entity
-@Table(name = "blog_question")
-@Deprecated
-public class Question extends BaseEntity {
-    @KeywordField(projectable = Projectable.YES)
-    @Column(nullable = false, unique = true)
-    private String questionId;
-    @FullTextField(analyzer = "ikAnalyzer", highlightable = Highlightable.ANY)
-    @Column(nullable = false)
-    private String title;
-    @FullTextField(analyzer = "ikAnalyzer", highlightable = Highlightable.ANY)
-    @Column(columnDefinition="text")
-    private String content;
-    @Column(nullable = false)
-    private Integer categoryId;
-    private String tag;
-    @Column(nullable = false)
-    private Integer weight;
-    @Column(nullable = false)
-    private LocalDateTime publishAt;
-    private Long owner;
-
-    public Question(String questionId, ArticleDto articleDto, int categoryId) {
-        this.questionId = questionId;
-        this.title = articleDto.getTitle();
-        this.content = articleDto.getContent();
-        this.categoryId = categoryId;
-        this.weight = 0;
-        this.publishAt = LocalDateTime.now();
-        this.owner = UserContext.getUserId();
-    }
-}

+ 0 - 2
search/search-service/src/main/java/cn/reghao/tnb/search/app/blog/model/vo/QuestionView.java

@@ -1,7 +1,5 @@
 package cn.reghao.tnb.search.app.blog.model.vo;
 
-import cn.reghao.tnb.search.app.blog.model.po.Article;
-import cn.reghao.tnb.search.app.blog.model.po.Question;
 import lombok.Getter;
 import lombok.Setter;
 

+ 1 - 1
search/search-service/src/main/java/cn/reghao/tnb/search/app/blog/service/ArticleQuery.java

@@ -206,7 +206,7 @@ public class ArticleQuery {
         if (type == CategoryType.Category.getValue()) {
             int categoryId = category.getId();
             int postType = ArticleType.Article.getValue();
-            Page<Article> page = articleRepository.findByPublishedIsTrueAndCategoryIdAndPostType(categoryId, postType, pageable);
+            Page<Article> page = articleRepository.findByCategoryIdAndPostType(categoryId, postType, pageable);
             total = page.getTotalElements();
             list1 = page.getContent().stream()
                     .map(article -> {

+ 1 - 2
search/search-service/src/main/java/cn/reghao/tnb/search/app/hibernate/HibernateLucene.java

@@ -1,7 +1,6 @@
 package cn.reghao.tnb.search.app.hibernate;
 
 import cn.reghao.tnb.search.app.blog.model.po.Article;
-import cn.reghao.tnb.search.app.blog.model.po.Question;
 import cn.reghao.tnb.search.app.model.po.WenshuDoc;
 import org.hibernate.search.mapper.orm.Search;
 import org.hibernate.search.mapper.orm.session.SearchSession;
@@ -23,7 +22,7 @@ public class HibernateLucene {
     }
 
     public void createIndex() {
-        List<Class<?>> classList = List.of(WenshuDoc.class, Article.class, Question.class);
+        List<Class<?>> classList = List.of(WenshuDoc.class, Article.class);
         searchSession.massIndexer(classList).start();
     }
 

+ 0 - 31
search/search-service/src/test/java/BlogTest.java

@@ -2,20 +2,12 @@ import cn.reghao.tnb.search.app.SearchApplication;
 import cn.reghao.tnb.search.app.blog.db.repository.ArticleRepository;
 import cn.reghao.tnb.search.app.blog.db.repository.ArticleTagRepository;
 import cn.reghao.tnb.search.app.blog.db.repository.CategoryRepository;
-import cn.reghao.tnb.search.app.blog.db.repository.QuestionRepository;
-import cn.reghao.tnb.search.app.blog.model.CategoryType;
-import cn.reghao.tnb.search.app.blog.model.po.Article;
-import cn.reghao.tnb.search.app.blog.model.po.ArticleTag;
-import cn.reghao.tnb.search.app.blog.model.po.Category;
-import cn.reghao.tnb.search.app.blog.model.po.Question;
 import lombok.extern.slf4j.Slf4j;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.ActiveProfiles;
 
-import java.util.List;
-
 /**
  * @author reghao
  * @date 2025-12-04 16:14:08
@@ -30,31 +22,8 @@ public class BlogTest {
     ArticleTagRepository articleTagRepository;
     @Autowired
     CategoryRepository categoryRepository;
-    @Autowired
-    QuestionRepository questionRepository;
 
     @Test
     public void articleTest() {
-        List<Question> list = questionRepository.findAll();
-        for (Question question : list) {
-            Article article = new Article(question);
-
-            String tag = question.getTag();
-            Category category = categoryRepository.findByTypeAndName(CategoryType.Tag.getValue(), tag);
-            ArticleTag articleTag = null;
-            if (category != null) {
-                articleTag = new ArticleTag(question.getQuestionId(), category.getId());
-            }
-
-            if (tag != null && category == null) {
-                Category category1 = new Category(CategoryType.Tag.getValue(), tag);
-                categoryRepository.save(category1);
-            }
-
-            articleRepository.save(article);
-            if (articleTag != null) {
-                articleTagRepository.save(articleTag);
-            }
-        }
     }
 }