Browse Source

删除 search-esapp 中的 comment 模块

reghao 2 weeks ago
parent
commit
abefab3cb4
26 changed files with 0 additions and 1655 deletions
  1. 0 66
      search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/controller/ArticleController.java
  2. 0 79
      search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/controller/ArticlePostController.java
  3. 0 51
      search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/controller/CommentController.java
  4. 0 41
      search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/controller/DanmakuController.java
  5. 0 44
      search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/controller/NewsPostController.java
  6. 0 105
      search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/db/mongo/ArticlePostMongo.java
  7. 0 129
      search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/db/mongo/RichTextMongo.java
  8. 0 120
      search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/db/mongo/UserCommentMongo.java
  9. 0 96
      search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/db/mongo/UserDanmakuMongo.java
  10. 0 24
      search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/model/dto/ArticlePublishSbt.java
  11. 0 16
      search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/model/dto/UpdateArticleContent.java
  12. 0 18
      search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/model/dto/UpdateArticleScope.java
  13. 0 37
      search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/model/po/ArticlePost.java
  14. 0 28
      search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/model/po/RichText.java
  15. 0 61
      search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/model/po/UserComment.java
  16. 0 42
      search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/model/po/UserDanmaku.java
  17. 0 22
      search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/model/vo/AnswerCard.java
  18. 0 15
      search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/model/vo/ArticleHeader.java
  19. 0 30
      search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/model/vo/NewsPost.java
  20. 0 149
      search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/service/ArticlePostService.java
  21. 0 161
      search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/service/CommentService.java
  22. 0 67
      search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/service/DanmakuService.java
  23. 0 36
      search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/service/NewsPostService.java
  24. 0 38
      search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/spider/TaskContext.java
  25. 0 59
      search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/spider/task/GetNewsDetailTask.java
  26. 0 121
      search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/spider/task/GetNewsIndexTask.java

+ 0 - 66
search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/controller/ArticleController.java

@@ -1,66 +0,0 @@
-package cn.reghao.tnb.search.esapp.comment.controller;
-
-import cn.reghao.jutil.jdk.web.db.PageList;
-import cn.reghao.tnb.common.auth.UserContext;
-import cn.reghao.tnb.common.web.WebResult;
-import cn.reghao.tnb.search.esapp.comment.model.dto.ArticlePublishSbt;
-import cn.reghao.tnb.search.esapp.comment.model.po.ArticlePost;
-import cn.reghao.tnb.search.esapp.comment.model.vo.AnswerCard;
-import cn.reghao.tnb.search.esapp.comment.model.vo.ArticleHeader;
-import cn.reghao.tnb.search.esapp.comment.service.ArticlePostService;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import org.springframework.http.MediaType;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-/**
- * @author reghao
- * @date 2023-10-13 09:24:04
- */
-@Tag(name = "文章接口")
-@RestController
-@RequestMapping("/api/search1/article")
-public class ArticleController {
-    private final ArticlePostService articleService;
-
-    public ArticleController(ArticlePostService articleService) {
-        this.articleService = articleService;
-    }
-
-    @Operation(summary = "获取文章列表")
-    @GetMapping(value = "", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String getArticles(@RequestParam("page") int page) {
-        long userId = UserContext.getUserId();
-        PageList<ArticleHeader> pageList = articleService.getArticleHeaders(userId, page);
-        return WebResult.success(pageList);
-    }
-
-    @Operation(summary = "获取用户文章列表")
-    @GetMapping(value = "/user", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String getUserArticles(@RequestParam("userId") long userId, @RequestParam("page") int page) {
-        PageList<AnswerCard> pageList = articleService.getAnswerCards(userId, page);
-        return WebResult.success(pageList);
-    }
-
-    @Operation(summary = "获取文章")
-    @GetMapping(value = "/{articleId}", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String getArticleInfo(@PathVariable("articleId") String articleId) {
-        ArticlePost articlePost = articleService.getArticleInfo(articleId);
-        String content = articlePost.getContent();
-        content = content.replace("<noscript>", "").replace("</noscript>", "");
-        articlePost.setContent(content);
-        return WebResult.success(articlePost);
-    }
-
-    @Operation(summary = "添加文章贴")
-    @PostMapping("/put")
-    public String submitArticlePost(@RequestBody @Validated ArticlePublishSbt articlePublishSbt) {
-        String content = articlePublishSbt.getContent();
-        content = content.replace("<noscript>", "").replace("</noscript>", "");
-        articlePublishSbt.setContent(content);
-
-        articleService.submitArticle1(articlePublishSbt);
-        return WebResult.success();
-    }
-}

+ 0 - 79
search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/controller/ArticlePostController.java

@@ -1,79 +0,0 @@
-package cn.reghao.tnb.search.esapp.comment.controller;
-
-import cn.reghao.jutil.jdk.web.db.PageList;
-import cn.reghao.tnb.common.auth.AuthUser;
-import cn.reghao.tnb.common.auth.UserContext;
-import cn.reghao.tnb.common.web.WebResult;
-import cn.reghao.tnb.search.esapp.comment.model.dto.ArticlePublishSbt;
-import cn.reghao.tnb.search.esapp.comment.model.dto.UpdateArticleContent;
-import cn.reghao.tnb.search.esapp.comment.model.dto.UpdateArticleScope;
-import cn.reghao.tnb.search.esapp.comment.model.po.ArticlePost;
-import cn.reghao.tnb.search.esapp.comment.service.ArticlePostService;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import org.springframework.http.MediaType;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-/**
- * @author reghao
- * @date 2023-02-02 11:36:06
- */
-@Tag(name = "文章贴接口")
-@RestController
-@RequestMapping("/api/search1/post/article")
-public class ArticlePostController {
-    private final ArticlePostService articleService;
-
-    public ArticlePostController(ArticlePostService articleService) {
-        this.articleService = articleService;
-    }
-
-    @AuthUser
-    @Operation(summary = "添加文章贴")
-    @PostMapping("")
-    public String submitArticlePost(@RequestBody @Validated ArticlePublishSbt articlePublishSbt) {
-        articleService.submitArticle(articlePublishSbt);
-        return WebResult.success();
-    }
-
-    @AuthUser
-    @Operation(summary = "修改文章可见范围")
-    @PostMapping("/update/scope")
-    public String updateArticleScope(@RequestBody @Validated UpdateArticleScope updateArticleScope) {
-        articleService.updateArticleScope(updateArticleScope);
-        return WebResult.success();
-    }
-
-    @AuthUser
-    @Operation(summary = "修改文章内容")
-    @PostMapping("/update/content")
-    public String updateArticleContent(@RequestBody @Validated UpdateArticleContent updateArticleContent) {
-        articleService.updateArticleContent(updateArticleContent);
-        return WebResult.success();
-    }
-
-    @AuthUser
-    @Operation(summary = "删除文章贴")
-    @DeleteMapping("/{articleId}")
-    public String deleteArticlePost(@PathVariable("articleId") String articleId) {
-        return WebResult.success();
-    }
-
-    @AuthUser
-    @Operation(summary = "获取文章贴列表")
-    @GetMapping(value = "", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String getArticlePosts(@RequestParam("page") int page) {
-        long userId = UserContext.getUserId();
-        PageList<ArticlePost> pageList = articleService.getPageByUserId(userId, page);
-        return WebResult.success(pageList);
-    }
-
-    @AuthUser
-    @Operation(summary = "获取文章贴")
-    @GetMapping(value = "/{articleId}", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String getArticleInfo(@PathVariable("articleId") String articleId) {
-        ArticlePost articlePost = articleService.getArticleInfo(articleId);
-        return WebResult.success(articlePost);
-    }
-}

+ 0 - 51
search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/controller/CommentController.java

@@ -1,51 +0,0 @@
-package cn.reghao.tnb.search.esapp.comment.controller;
-
-import cn.reghao.jutil.jdk.web.db.PageList;
-import cn.reghao.tnb.common.auth.AuthUser;
-import cn.reghao.tnb.common.web.WebResult;
-import cn.reghao.tnb.content.api.dto.comment.CommentSbtDto;
-import cn.reghao.tnb.content.api.dto.comment.UserReply;
-import cn.reghao.tnb.search.esapp.comment.service.CommentService;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.*;
-
-/**
- * @author reghao
- * @date 2022-03-06 21:25:44
- */
-@Slf4j
-@Tag(name = "评论接口")
-@RestController
-@RequestMapping("/api/comment")
-public class CommentController {
-    private final CommentService commentService;
-
-    public CommentController(CommentService commentService) {
-        this.commentService = commentService;
-    }
-
-    @AuthUser
-    @Operation(summary = "发送视频评论", description = "N")
-    @PostMapping("/video")
-    public String submitComment(@RequestBody CommentSbtDto commentSbtDto) {
-        commentService.saveComment(commentSbtDto);
-        return WebResult.success();
-    }
-
-    @Operation(summary = "获取视频评论", description = "N")
-    @GetMapping(value = "/video", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String getUserComment(@RequestParam("videoId") String videoId, @RequestParam("pageNumber") int pageNumber) {
-        PageList<UserReply> pageList = commentService.getUserComment(videoId, pageNumber);
-        return WebResult.success(pageList);
-    }
-
-    @Operation(summary = "获取评论的子评论", description = "N")
-    @GetMapping(value = "/video/child", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String getChildComment(@RequestParam("commentId") long commentId, @RequestParam("pageNumber") int pageNumber) {
-        PageList<UserReply> pageList = commentService.getChildComment(commentId, pageNumber);
-        return WebResult.success(pageList);
-    }
-}

+ 0 - 41
search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/controller/DanmakuController.java

@@ -1,41 +0,0 @@
-package cn.reghao.tnb.search.esapp.comment.controller;
-
-import cn.reghao.jutil.jdk.web.result.Result;
-import cn.reghao.tnb.common.web.WebResult;
-import cn.reghao.tnb.content.api.dto.DanmakuSbtDto;
-import cn.reghao.tnb.search.esapp.comment.service.DanmakuService;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2021-12-06 19:12:13
- */
-@Tag(name = "弹幕接口")
-@RestController
-@RequestMapping("/api/comment/danmaku")
-public class DanmakuController {
-    private final DanmakuService danmakuService;
-
-    public DanmakuController(DanmakuService danmakuService) {
-        this.danmakuService = danmakuService;
-    }
-
-    @Operation(summary = "发送视频弹幕", description = "N")
-    @PostMapping("/v3/")
-    public String submitDanmaku(@RequestBody DanmakuSbtDto danmakuSbtDto) {
-        Result result = danmakuService.submit(danmakuSbtDto);
-        return WebResult.result(result);
-    }
-
-    @Operation(summary = "获取视频弹幕", description = "N")
-    @GetMapping(value = "/v3/", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String danmakuList(@RequestParam("id") String videoId, @RequestParam("max") int max) {
-        List<List<Object>> lists = danmakuService.getByVideoIdAndSize(videoId, 1000);
-        return WebResult.success(lists);
-    }
-}

+ 0 - 44
search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/controller/NewsPostController.java

@@ -1,44 +0,0 @@
-package cn.reghao.tnb.search.esapp.comment.controller;
-
-import cn.reghao.jutil.jdk.web.db.PageList;
-import cn.reghao.tnb.common.web.WebResult;
-import cn.reghao.tnb.search.esapp.comment.model.vo.NewsPost;
-import cn.reghao.tnb.search.esapp.comment.service.NewsPostService;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import org.springframework.web.bind.annotation.*;
-
-/**
- * @author reghao
- * @date 2025-07-29 14:10:28
- */
-@Tag(name = "新闻稿件接口")
-@RestController
-@RequestMapping("/api/search1/post/news")
-public class NewsPostController {
-    private final NewsPostService newsPostService;
-
-    public NewsPostController(NewsPostService newsPostService) {
-        this.newsPostService = newsPostService;
-    }
-
-    @Operation(summary = "发布新闻稿件", description = "N")
-    @PostMapping("/publish")
-    public String publishVideoPost() {
-        return WebResult.success();
-    }
-
-    @Operation(summary = "获取新闻稿件列表", description = "N")
-    @GetMapping("/list")
-    public String getNewsPosts(@RequestParam("pn") Integer pn) {
-        PageList<NewsPost> pageList = newsPostService.getByPage(pn);
-        return WebResult.success(pageList);
-    }
-
-    @Operation(summary = "获取新闻稿件", description = "N")
-    @GetMapping("/detail/{newsId}")
-    public String getNewsPost(@PathVariable("newsId") Long newsId) {
-        NewsPost newsPost = newsPostService.getById(newsId);
-        return WebResult.success(newsPost);
-    }
-}

+ 0 - 105
search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/db/mongo/ArticlePostMongo.java

@@ -1,105 +0,0 @@
-package cn.reghao.tnb.search.esapp.comment.db.mongo;
-
-import cn.reghao.jutil.jdk.web.db.BaseCrud;
-import cn.reghao.jutil.jdk.web.db.BaseQuery;
-import cn.reghao.tnb.search.esapp.comment.model.po.ArticlePost;
-import com.mongodb.MongoBulkWriteException;
-import com.mongodb.client.model.InsertManyOptions;
-import com.mongodb.client.result.DeleteResult;
-import com.mongodb.client.result.InsertManyResult;
-import lombok.extern.slf4j.Slf4j;
-import org.bson.Document;
-import org.springframework.data.domain.Sort;
-import org.springframework.data.mongodb.core.MongoTemplate;
-import org.springframework.data.mongodb.core.convert.MongoConverter;
-import org.springframework.data.mongodb.core.query.Criteria;
-import org.springframework.data.mongodb.core.query.Query;
-import org.springframework.stereotype.Repository;
-
-import java.time.LocalDateTime;
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * @author reghao
- * @date 2023-02-01 14:19:02
- */
-@Slf4j
-@Repository
-public class ArticlePostMongo implements BaseCrud<ArticlePost>, BaseQuery<ArticlePost> {
-    private final String colName = "ArticlePost";
-    private final MongoTemplate mongoTemplate;
-    private final MongoConverter mongoConverter;
-    private final int pageSize = 20;
-
-    public ArticlePostMongo(MongoTemplate mongoTemplate, MongoConverter mongoConverter) {
-        this.mongoTemplate = mongoTemplate;
-        this.mongoConverter = mongoConverter;
-    }
-
-    @Override
-    public ArticlePost save(ArticlePost articlePost) {
-        Document doc = new Document();
-        mongoConverter.write(articlePost, doc);
-        mongoTemplate.getCollection(colName).insertOne(doc);
-        return null;
-    }
-
-    @Override
-    public void saveAll(List<ArticlePost> list) {
-        List<Document> documents = list.stream()
-                .map(t -> {
-                    Document doc = new Document();
-                    mongoConverter.write(t, doc);
-                    return doc;
-                })
-                .collect(Collectors.toList());
-
-        InsertManyOptions options = new InsertManyOptions();
-        // 忽略 insert 失败的文档
-        options.ordered(false);
-        try {
-            InsertManyResult result = mongoTemplate.getCollection(colName).insertMany(documents, options);
-        }  catch (MongoBulkWriteException ignore) {
-        }
-    }
-
-    @Override
-    public void update(ArticlePost articlePost) {
-        articlePost.setUpdateTime(LocalDateTime.now());
-
-        Document document = new Document();
-        mongoConverter.write(articlePost, document);
-        Document filter = new Document();
-        filter.put("articleId", articlePost.getArticleId());
-        mongoTemplate.getCollection(colName).replaceOne(filter, document);
-    }
-
-    @Override
-    public void delete(ArticlePost articlePost) {
-        Query query = new Query();
-        query.addCriteria(Criteria.where("_id").is(articlePost.getId()));
-        DeleteResult deleteResult = mongoTemplate.remove(query, ArticlePost.class);
-    }
-
-    public long countByUserId(long userId) {
-        Document filter = new Document();
-        filter.put("userId", userId);
-        return mongoTemplate.getCollection(colName).countDocuments(filter);
-    }
-
-    public List<ArticlePost> findByUserId(long userId, long page) {
-        Query query = new Query();
-        query.addCriteria(Criteria.where("userId").is(userId));
-        query.skip((page - 1) * pageSize).limit(pageSize);
-        query.with(Sort.by(new Sort.Order(Sort.Direction.DESC, "updateTime")));
-        return mongoTemplate.find(query, ArticlePost.class, colName);
-    }
-
-    public ArticlePost findByArticleId(String articleId) {
-        Query query = new Query();
-        query.addCriteria(Criteria.where("articleId").is(articleId));
-        List<ArticlePost> list = mongoTemplate.find(query, ArticlePost.class, colName);
-        return list.isEmpty() ? null : list.get(0);
-    }
-}

+ 0 - 129
search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/db/mongo/RichTextMongo.java

@@ -1,129 +0,0 @@
-package cn.reghao.tnb.search.esapp.comment.db.mongo;
-
-import cn.reghao.jutil.jdk.web.db.BaseCrud;
-import cn.reghao.jutil.jdk.web.db.BaseQuery;
-import cn.reghao.jutil.jdk.web.db.PageList;
-import cn.reghao.tnb.search.esapp.comment.model.po.RichText;
-import cn.reghao.tnb.search.esapp.comment.model.vo.NewsPost;
-import com.mongodb.MongoBulkWriteException;
-import com.mongodb.client.model.InsertManyOptions;
-import com.mongodb.client.result.DeleteResult;
-import com.mongodb.client.result.InsertManyResult;
-import lombok.extern.slf4j.Slf4j;
-import org.bson.Document;
-import org.springframework.data.domain.Sort;
-import org.springframework.data.mongodb.core.MongoTemplate;
-import org.springframework.data.mongodb.core.convert.MongoConverter;
-import org.springframework.data.mongodb.core.query.Criteria;
-import org.springframework.data.mongodb.core.query.Query;
-import org.springframework.stereotype.Repository;
-
-import java.time.LocalDateTime;
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * @author reghao
- * @date 2023-02-01 14:19:02
- */
-@Slf4j
-@Repository
-public class RichTextMongo implements BaseCrud<RichText>, BaseQuery<RichText> {
-    private final String colName = "RichText";
-    private final MongoTemplate mongoTemplate;
-    private final MongoConverter mongoConverter;
-    private final int pageSize = 20;
-
-    public RichTextMongo(MongoTemplate mongoTemplate, MongoConverter mongoConverter) {
-        this.mongoTemplate = mongoTemplate;
-        this.mongoConverter = mongoConverter;
-    }
-
-    @Override
-    public RichText save(RichText richText) {
-        Document doc = new Document();
-        mongoConverter.write(richText, doc);
-        mongoTemplate.getCollection(colName).insertOne(doc);
-        return null;
-    }
-
-    @Override
-    public void saveAll(List<RichText> list) {
-        List<Document> documents = list.stream()
-                .map(t -> {
-                    Document doc = new Document();
-                    mongoConverter.write(t, doc);
-                    return doc;
-                })
-                .collect(Collectors.toList());
-
-        InsertManyOptions options = new InsertManyOptions();
-        // 忽略 insert 失败的文档
-        options.ordered(false);
-        try {
-            InsertManyResult result = mongoTemplate.getCollection(colName).insertMany(documents, options);
-        }  catch (MongoBulkWriteException ignore) {
-        }
-    }
-
-    @Override
-    public void update(RichText richText) {
-        richText.setUpdateTime(LocalDateTime.now());
-
-        Document document = new Document();
-        mongoConverter.write(richText, document);
-        Document filter = new Document();
-        filter.put("contentId", richText.getContentId());
-        mongoTemplate.getCollection(colName).replaceOne(filter, document);
-    }
-
-    @Override
-    public void delete(RichText richText) {
-        Query query = new Query();
-        query.addCriteria(Criteria.where("contentId").is(richText.getContentId()));
-        DeleteResult deleteResult = mongoTemplate.remove(query, colName);
-        if (deleteResult.getDeletedCount() != 1) {
-        }
-    }
-
-    public long countByUserId(long userId) {
-        Document filter = new Document();
-        filter.put("userId", userId);
-        return mongoTemplate.getCollection(colName).countDocuments(filter);
-    }
-
-    public PageList<NewsPost> findNewsPostByPage(long page) {
-        Query query = new Query();
-        query.addCriteria(Criteria.where("content").ne(null));
-        query.skip((page - 1) * pageSize).limit(pageSize);
-        query.with(Sort.by(new Sort.Order(Sort.Direction.DESC, "publishAt")));
-        List<RichText> list = mongoTemplate.find(query, RichText.class, colName);
-        List<NewsPost> list1 = list.stream()
-                .map(NewsPost::new)
-                .collect(Collectors.toList());
-        int total = list.size();
-        return PageList.pageList((int) page, pageSize, total, list1);
-    }
-
-    public List<RichText> findByContentIsNull() {
-        Query query = new Query();
-        query.addCriteria(Criteria.where("content").is(null));
-        query.skip(0).limit(1000);
-        query.with(Sort.by(new Sort.Order(Sort.Direction.DESC, "publishAt")));
-        return mongoTemplate.find(query, RichText.class, colName);
-    }
-
-    public RichText findByOriginalUrl(String originalUrl) {
-        Query query = new Query();
-        query.addCriteria(Criteria.where("originalUrl").is(originalUrl));
-        List<RichText> list = mongoTemplate.find(query, RichText.class, colName);
-        return list.isEmpty() ? null : list.get(0);
-    }
-
-    public RichText findByContentId(long contentId) {
-        Query query = new Query();
-        query.addCriteria(Criteria.where("contentId").is(contentId));
-        List<RichText> list = mongoTemplate.find(query, RichText.class, colName);
-        return list.isEmpty() ? null : list.get(0);
-    }
-}

+ 0 - 120
search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/db/mongo/UserCommentMongo.java

@@ -1,120 +0,0 @@
-package cn.reghao.tnb.search.esapp.comment.db.mongo;
-
-import cn.reghao.jutil.jdk.web.db.BaseCrud;
-import cn.reghao.jutil.jdk.web.db.BaseQuery;
-import cn.reghao.tnb.search.esapp.comment.model.po.UserComment;
-import com.mongodb.MongoBulkWriteException;
-import com.mongodb.client.model.InsertManyOptions;
-import com.mongodb.client.result.DeleteResult;
-import com.mongodb.client.result.InsertManyResult;
-import lombok.extern.slf4j.Slf4j;
-import org.bson.Document;
-import org.springframework.data.domain.Sort;
-import org.springframework.data.mongodb.core.MongoTemplate;
-import org.springframework.data.mongodb.core.convert.MongoConverter;
-import org.springframework.data.mongodb.core.query.Criteria;
-import org.springframework.data.mongodb.core.query.Query;
-import org.springframework.stereotype.Repository;
-
-import java.time.LocalDateTime;
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * @author reghao
- * @date 2023-02-01 14:19:02
- */
-@Slf4j
-@Repository
-public class UserCommentMongo implements BaseCrud<UserComment>, BaseQuery<UserComment> {
-    private final String colName = "UserComment";
-    private final MongoTemplate mongoTemplate;
-    private final MongoConverter mongoConverter;
-    private final int pageSize = 20;
-
-    public UserCommentMongo(MongoTemplate mongoTemplate, MongoConverter mongoConverter) {
-        this.mongoTemplate = mongoTemplate;
-        this.mongoConverter = mongoConverter;
-    }
-
-    @Override
-    public UserComment save(UserComment userComment) {
-        Document doc = new Document();
-        mongoConverter.write(userComment, doc);
-        mongoTemplate.getCollection(colName).insertOne(doc);
-        return null;
-    }
-
-    @Override
-    public void saveAll(List<UserComment> list) {
-        List<Document> documents = list.stream()
-                .map(t -> {
-                    Document doc = new Document();
-                    mongoConverter.write(t, doc);
-                    return doc;
-                })
-                .collect(Collectors.toList());
-
-        InsertManyOptions options = new InsertManyOptions();
-        // 忽略 insert 失败的文档
-        options.ordered(false);
-        try {
-            InsertManyResult result = mongoTemplate.getCollection(colName).insertMany(documents, options);
-        }  catch (MongoBulkWriteException ignore) {
-        }
-    }
-
-    @Override
-    public void update(UserComment userComment) {
-        userComment.setUpdateTime(LocalDateTime.now());
-
-        Document document = new Document();
-        mongoConverter.write(userComment, document);
-        Document filter = new Document();
-        mongoTemplate.getCollection(colName).replaceOne(filter, document);
-    }
-
-    @Override
-    public void delete(UserComment userComment) {
-        Query query = new Query();
-        query.addCriteria(Criteria.where("_id").is(userComment.getId()));
-        DeleteResult deleteResult = mongoTemplate.remove(query, UserComment.class);
-    }
-
-    public long countByPostId(String postId) {
-        Document filter = new Document();
-        filter.put("postId", postId);
-        filter.put("pCommentId", 0);
-        return mongoTemplate.getCollection(colName).countDocuments(filter);
-    }
-
-    public List<UserComment> findByPostId(String postId, long pageNumber) {
-        Query query = new Query();
-        query.addCriteria(Criteria.where("postId").is(postId));
-        query.addCriteria(Criteria.where("pCommentId").is(0));
-        query.with(Sort.by(new Sort.Order(Sort.Direction.DESC, "publishAt")));
-        query.skip((pageNumber - 1) * pageSize).limit(pageSize);
-        return mongoTemplate.find(query, UserComment.class, colName);
-    }
-
-    public long countChildComment(long commentId) {
-        Document filter = new Document();
-        filter.put("pCommentId", commentId);
-        return mongoTemplate.getCollection(colName).countDocuments(filter);
-    }
-
-    public List<UserComment> findByParentId(long commentId, long pageNumber, int pageSize) {
-        Query query = new Query();
-        query.addCriteria(Criteria.where("pCommentId").is(commentId));
-        query.with(Sort.by(new Sort.Order(Sort.Direction.ASC, "publishAt")));
-        query.skip((pageNumber - 1) * pageSize).limit(pageSize);
-        return mongoTemplate.find(query, UserComment.class, colName);
-    }
-
-    public UserComment findByCommentId(long commentId) {
-        Query query = new Query();
-        query.addCriteria(Criteria.where("commentId").is(commentId));
-        List<UserComment> list = mongoTemplate.find(query, UserComment.class, colName);
-        return list.isEmpty() ? null : list.get(0);
-    }
-}

+ 0 - 96
search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/db/mongo/UserDanmakuMongo.java

@@ -1,96 +0,0 @@
-package cn.reghao.tnb.search.esapp.comment.db.mongo;
-
-import cn.reghao.jutil.jdk.web.db.BaseCrud;
-import cn.reghao.jutil.jdk.web.db.BaseQuery;
-import cn.reghao.tnb.content.api.dto.DanmakuRetVo;
-import cn.reghao.tnb.search.esapp.comment.model.po.UserDanmaku;
-import com.mongodb.MongoBulkWriteException;
-import com.mongodb.client.model.InsertManyOptions;
-import com.mongodb.client.result.DeleteResult;
-import com.mongodb.client.result.InsertManyResult;
-import lombok.extern.slf4j.Slf4j;
-import org.bson.Document;
-import org.springframework.data.mongodb.core.MongoTemplate;
-import org.springframework.data.mongodb.core.convert.MongoConverter;
-import org.springframework.data.mongodb.core.query.Criteria;
-import org.springframework.data.mongodb.core.query.Query;
-import org.springframework.stereotype.Repository;
-
-import java.time.LocalDateTime;
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * @author reghao
- * @date 2023-02-02 11:04:02
- */
-@Slf4j
-@Repository
-public class UserDanmakuMongo implements BaseCrud<UserDanmaku>, BaseQuery<UserDanmaku> {
-    private final String colName = "UserDanmaku";
-    private final MongoTemplate mongoTemplate;
-    private final MongoConverter mongoConverter;
-    private final int pageSize = 20;
-
-    public UserDanmakuMongo(MongoTemplate mongoTemplate, MongoConverter mongoConverter) {
-        this.mongoTemplate = mongoTemplate;
-        this.mongoConverter = mongoConverter;
-    }
-
-    @Override
-    public UserDanmaku save(UserDanmaku userDanmaku) {
-        Document doc = new Document();
-        mongoConverter.write(userDanmaku, doc);
-        mongoTemplate.getCollection(colName).insertOne(doc);
-        return null;
-    }
-
-    @Override
-    public void saveAll(List<UserDanmaku> list) {
-        List<Document> documents = list.stream()
-                .map(t -> {
-                    Document doc = new Document();
-                    mongoConverter.write(t, doc);
-                    return doc;
-                })
-                .collect(Collectors.toList());
-
-        InsertManyOptions options = new InsertManyOptions();
-        // 忽略 insert 失败的文档
-        options.ordered(false);
-        try {
-            InsertManyResult result = mongoTemplate.getCollection(colName).insertMany(documents, options);
-        }  catch (MongoBulkWriteException ignore) {
-        }
-    }
-
-    @Override
-    public void update(UserDanmaku userDanmaku) {
-        userDanmaku.setUpdateTime(LocalDateTime.now());
-
-        Document document = new Document();
-        mongoConverter.write(userDanmaku, document);
-        Document filter = new Document();
-        mongoTemplate.getCollection(colName).replaceOne(filter, document);
-    }
-
-    @Override
-    public void delete(UserDanmaku userDanmaku) {
-        Query query = new Query();
-        query.addCriteria(Criteria.where("_id").is(userDanmaku.getId()));
-        DeleteResult deleteResult = mongoTemplate.remove(query, UserDanmaku.class);
-    }
-
-    public List<DanmakuRetVo> findByVideoId(String videoId, int size) {
-        Query query = new Query();
-        query.addCriteria(Criteria.where("videoId").is(videoId));
-        query.limit(size);
-        query.fields()
-                .include("time")
-                .include("type")
-                .include("color")
-                .include("userId")
-                .include("text");
-        return mongoTemplate.find(query, DanmakuRetVo.class, colName);
-    }
-}

+ 0 - 24
search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/model/dto/ArticlePublishSbt.java

@@ -1,24 +0,0 @@
-package cn.reghao.tnb.search.esapp.comment.model.dto;
-
-import jakarta.validation.constraints.NotBlank;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-
-import java.io.Serializable;
-
-/**
- * @author reghao
- * @date 2023-02-02 12:55:28
- */
-@NoArgsConstructor
-@Setter
-@Getter
-public class ArticlePublishSbt implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    @NotBlank
-    private String title;
-    @NotBlank
-    private String content;
-}

+ 0 - 16
search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/model/dto/UpdateArticleContent.java

@@ -1,16 +0,0 @@
-package cn.reghao.tnb.search.esapp.comment.model.dto;
-
-import jakarta.validation.constraints.NotBlank;
-import lombok.Getter;
-
-/**
- * @author reghao
- * @date 2023-10-13 09:32:40
- */
-@Getter
-public class UpdateArticleContent {
-    @NotBlank
-    private String articleId;
-    @NotBlank
-    private String content;
-}

+ 0 - 18
search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/model/dto/UpdateArticleScope.java

@@ -1,18 +0,0 @@
-package cn.reghao.tnb.search.esapp.comment.model.dto;
-
-import cn.reghao.jutil.jdk.web.validator.ValidEnum;
-import cn.reghao.tnb.content.api.constant.PostScope;
-import jakarta.validation.constraints.NotBlank;
-import lombok.Getter;
-
-/**
- * @author reghao
- * @date 2023-10-07 18:31:21
- */
-@Getter
-public class UpdateArticleScope {
-    @NotBlank
-    private String articleId;
-    @ValidEnum(value = PostScope.class, message = "可见范围不正确")
-    private Integer scope;
-}

+ 0 - 37
search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/model/po/ArticlePost.java

@@ -1,37 +0,0 @@
-package cn.reghao.tnb.search.esapp.comment.model.po;
-
-import cn.reghao.jutil.jdk.web.db.BaseObject;
-import cn.reghao.tnb.content.api.constant.PostScope;
-import lombok.EqualsAndHashCode;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-
-/**
- * @author reghao
- * @date 2023-02-02 11:29:55
- */
-@EqualsAndHashCode(callSuper = false)
-@NoArgsConstructor
-@Setter
-@Getter
-@Deprecated
-public class ArticlePost extends BaseObject<String> {
-    private String articleId;
-    private String title;
-    private String excerpt;
-    private String content;
-    private int scope;
-    private Long createAt;
-    private Long userId;
-
-    public ArticlePost(String articleId, String title, String excerpt, String content, Long userId) {
-        this.articleId = articleId;
-        this.title = title;
-        this.excerpt = excerpt;
-        this.content = content;
-        this.scope = PostScope.PUBLIC.getCode();
-        this.createAt = System.currentTimeMillis()/1000;
-        this.userId = userId;
-    }
-}

+ 0 - 28
search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/model/po/RichText.java

@@ -1,28 +0,0 @@
-package cn.reghao.tnb.search.esapp.comment.model.po;
-
-import cn.reghao.jutil.jdk.web.db.BaseObject;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-
-/**
- * @author reghao
- * @date 2025-07-29 15:52:55
- */
-@AllArgsConstructor
-@NoArgsConstructor
-@Setter
-@Getter
-public class RichText extends BaseObject<String> {
-    private Long contentId;
-    private String contentType;
-    private String title;
-    private String coverUrl;
-    private String excerpt;
-    private String content;
-    private Integer scope;
-    private String originalUrl;
-    private Long publishAt;
-    private Long publishBy;
-}

+ 0 - 61
search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/model/po/UserComment.java

@@ -1,61 +0,0 @@
-package cn.reghao.tnb.search.esapp.comment.model.po;
-
-import cn.reghao.jutil.jdk.web.db.BaseObject;
-import cn.reghao.tnb.common.auth.UserContext;
-import cn.reghao.tnb.content.api.dto.comment.CommentData;
-import lombok.EqualsAndHashCode;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2023-02-01 16:15:43
- */
-@EqualsAndHashCode(callSuper = false)
-@NoArgsConstructor
-@Setter
-@Getter
-public class UserComment extends BaseObject<String> {
-    private Long pCommentId;
-    private Long commentId;
-    private String content;
-    private String imgSrc;
-    private List<String> commentImages;
-    private Integer likes;
-    private Boolean liked;
-    private Integer postType;
-    private String postId;
-    private Long avId;
-    private String location;
-    private Long publishAt;
-    private Long publishBy;
-
-    public UserComment(long parentId, long commentId, CommentData commentData) {
-        this.commentId = commentId;
-        this.postId = commentData.getPostId();
-        this.pCommentId = parentId;
-        this.content = commentData.getContent();
-        this.commentImages = commentData.getImageUrls();
-        this.likes = commentData.getLikes();
-        this.liked = false;
-        this.location = commentData.getLocation();
-        this.publishAt = commentData.getCreateAt();
-        this.publishBy = Long.parseLong(commentData.getUser().getUserId());
-    }
-
-    public UserComment(long commentId, CommentData commentData, long parentId) {
-        this.postId = commentData.getPostId();
-        this.avId = 0L;
-        this.pCommentId = parentId;
-        this.commentId = commentId;
-        this.content = commentData.getContent();
-        this.commentImages = commentData.getImageUrls();
-        this.likes = 0;
-        this.liked = false;
-        this.publishAt = System.currentTimeMillis();
-        this.publishBy = UserContext.getUserId();
-    }
-}

+ 0 - 42
search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/model/po/UserDanmaku.java

@@ -1,42 +0,0 @@
-package cn.reghao.tnb.search.esapp.comment.model.po;
-
-import cn.reghao.jutil.jdk.web.db.BaseObject;
-import cn.reghao.tnb.content.api.dto.DanmakuSbtDto;
-import lombok.EqualsAndHashCode;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-
-/**
- * dplayer 弹幕的数据定义
- *
- * @author reghao
- * @date 2023-02-02 11:03:09
- */
-@EqualsAndHashCode(callSuper = false)
-@NoArgsConstructor
-@Setter
-@Getter
-public class UserDanmaku extends BaseObject<String> {
-    private Long dmId;
-    private String videoId;
-    private Integer type;
-    private Long color;
-    private String text;
-    private Double time;
-    private Long publishAt;
-    private Long publishBy;
-    private String midHash;
-
-    public UserDanmaku(long dmId, DanmakuSbtDto danmakuSbtDto, long publishBy) {
-        this.dmId = danmakuSbtDto.getDmId() != null ? danmakuSbtDto.getDmId() : dmId;
-        this.videoId = danmakuSbtDto.getId();
-        this.type = danmakuSbtDto.getType();
-        this.color = danmakuSbtDto.getColor();
-        this.text = danmakuSbtDto.getText();
-        this.time = danmakuSbtDto.getTime();
-        this.publishAt = danmakuSbtDto.getPublishAt() != null ? danmakuSbtDto.getPublishAt() : System.currentTimeMillis();
-        this.publishBy = publishBy;
-        this.midHash = danmakuSbtDto.getMidHash();
-    }
-}

+ 0 - 22
search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/model/vo/AnswerCard.java

@@ -1,22 +0,0 @@
-package cn.reghao.tnb.search.esapp.comment.model.vo;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * @author reghao
- * @date 2022-06-15 16:43:57
- */
-@Setter
-@Getter
-public class AnswerCard {
-    private String articleId;
-    private String title;
-    private String excerpt;
-    private String content;
-
-    private Long userId;
-    private String username;
-    private String avatarUrl;
-    private String signature;
-}

+ 0 - 15
search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/model/vo/ArticleHeader.java

@@ -1,15 +0,0 @@
-package cn.reghao.tnb.search.esapp.comment.model.vo;
-
-import lombok.AllArgsConstructor;
-
-/**
- * @author reghao
- * @date 2023-10-13 11:32:39
- */
-@AllArgsConstructor
-public class ArticleHeader {
-    private String articleId;
-    private String title;
-    private String excerpt;
-    private String publishAt;
-}

+ 0 - 30
search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/model/vo/NewsPost.java

@@ -1,30 +0,0 @@
-package cn.reghao.tnb.search.esapp.comment.model.vo;
-
-import cn.reghao.jutil.jdk.converter.DateTimeConverter;
-import cn.reghao.tnb.search.esapp.comment.model.po.RichText;
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * @author reghao
- * @date 2025-07-29 13:55:57
- */
-@Setter
-@Getter
-public class NewsPost {
-    private long contentId;
-    private String title;
-    private String coverUrl;
-    private String content;
-    private String publishAt;
-    private String originalUrl;
-
-    public NewsPost(RichText richText) {
-        this.contentId = richText.getContentId();
-        this.title = richText.getTitle();
-        this.coverUrl = richText.getCoverUrl();
-        this.content = richText.getContent();
-        this.publishAt = DateTimeConverter.format(richText.getPublishAt());
-        this.originalUrl = richText.getOriginalUrl();
-    }
-}

+ 0 - 149
search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/service/ArticlePostService.java

@@ -1,149 +0,0 @@
-package cn.reghao.tnb.search.esapp.comment.service;
-
-import cn.reghao.jutil.jdk.converter.DateTimeConverter;
-import cn.reghao.jutil.jdk.string.IdGenerator;
-import cn.reghao.jutil.jdk.string.SnowFlake;
-import cn.reghao.jutil.jdk.web.db.PageList;
-import cn.reghao.tnb.common.auth.UserContext;
-import cn.reghao.tnb.search.esapp.comment.db.mongo.ArticlePostMongo;
-import cn.reghao.tnb.search.esapp.comment.db.mongo.RichTextMongo;
-import cn.reghao.tnb.search.esapp.comment.model.dto.ArticlePublishSbt;
-import cn.reghao.tnb.search.esapp.comment.model.dto.UpdateArticleContent;
-import cn.reghao.tnb.search.esapp.comment.model.dto.UpdateArticleScope;
-import cn.reghao.tnb.search.esapp.comment.model.po.ArticlePost;
-import cn.reghao.tnb.search.esapp.comment.model.po.RichText;
-import cn.reghao.tnb.search.esapp.comment.model.vo.AnswerCard;
-import cn.reghao.tnb.search.esapp.comment.model.vo.ArticleHeader;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * @author reghao
- * @date 2023-02-02 11:35:25
- */
-@Service
-public class ArticlePostService {
-    private final ArticlePostMongo articlePostMongo;
-    private final IdGenerator idGenerator = new IdGenerator("article-id");
-    private final SnowFlake idGenerator1 = new SnowFlake(1L, 1L);
-    private RichTextMongo richTextMongo;
-    private int pageSize = 12;
-
-    public ArticlePostService(ArticlePostMongo articlePostMongo, RichTextMongo richTextMongo) {
-        this.articlePostMongo = articlePostMongo;
-        this.richTextMongo = richTextMongo;
-    }
-
-    public void submitArticle(ArticlePublishSbt articlePublishSbt) {
-        long loginUser = UserContext.getUserId();
-        String title = articlePublishSbt.getTitle();
-        String content = articlePublishSbt.getContent();
-
-        RichText richText = new RichText();
-        richText.setContentId(idGenerator1.nextId());
-        richText.setOriginalUrl("");
-        richText.setTitle(title);
-        richText.setCoverUrl("");
-        richText.setContent(content);
-        richText.setPublishAt(System.currentTimeMillis());
-        richText.setPublishBy(loginUser);
-        richTextMongo.save(richText);
-    }
-
-    public void submitArticle1(ArticlePublishSbt articlePublishSbt) {
-        //long userId = articlePublishSbt.getUserId();
-        String title = articlePublishSbt.getTitle();
-        String content = articlePublishSbt.getContent();
-        //String excerpt = articlePublishSbt.getExcerpt();
-
-        /*String articleId = idGenerator.stringId();
-        ArticlePost articlePost = new ArticlePost(articleId, title, excerpt, content, userId);
-        articlePostMongo.save(articlePost);
-
-        StringBuilder sb = new StringBuilder();
-        Document document = Jsoup.parse(content);
-        Elements elements = document.select("p");
-        elements.forEach(element -> {
-            String text = element.text();
-            sb.append(text).append(System.lineSeparator());
-        });*/
-    }
-
-    public void updateArticleScope(UpdateArticleScope updateArticleScope) {
-        String articleId = updateArticleScope.getArticleId();
-        ArticlePost articlePost = articlePostMongo.findByArticleId(articleId);
-        if (articlePost == null) {
-            return;
-        }
-
-        int scope = updateArticleScope.getScope();
-        articlePost.setScope(scope);
-        articlePostMongo.update(articlePost);
-    }
-
-    public void updateArticleContent(UpdateArticleContent updateArticleContent) {
-        String articleId = updateArticleContent.getArticleId();
-        ArticlePost articlePost = articlePostMongo.findByArticleId(articleId);
-        if (articlePost == null) {
-            return;
-        }
-
-        articlePost.setContent(updateArticleContent.getContent());
-        articlePostMongo.update(articlePost);
-    }
-
-    public PageList<ArticlePost> getPageByUserId(long userId, int page) {
-        Long total = articlePostMongo.countByUserId(userId);
-        List<ArticlePost> list = articlePostMongo.findByUserId(userId, page);
-        return PageList.pageList(page, pageSize, total.intValue(), list);
-    }
-
-    public ArticlePost getArticleInfo(String articleId) {
-        return articlePostMongo.findByArticleId(articleId);
-    }
-
-    public PageList<ArticleHeader> getArticleHeaders(long userId, int page) {
-        List<ArticleHeader> list = articlePostMongo.findByUserId(userId, page).stream()
-                .map(articlePost -> {
-                    String articleId = articlePost.getArticleId();
-                    String title = articlePost.getTitle();
-                    String excerpt = articlePost.getExcerpt();
-                    String publishAt = DateTimeConverter.format(articlePost.getCreateAt()*1000);
-                    return new ArticleHeader(articleId, title, excerpt, publishAt);
-                })
-                .collect(Collectors.toList());
-
-        int total = list.size();
-        return PageList.pageList(page, pageSize, total, list);
-    }
-
-    public PageList<AnswerCard> getAnswerCards(long userId, int page) {
-        List<AnswerCard> list = articlePostMongo.findByUserId(userId, page).stream()
-                .map(articlePost -> {
-                    String articleId = articlePost.getArticleId();
-                    String title = articlePost.getTitle();
-                    String content = articlePost.getContent();
-                    long userId1 = articlePost.getUserId();
-
-                    AnswerCard answerCard = new AnswerCard();
-                    answerCard.setArticleId(articleId);
-                    //answerCard.setQuestionId(537796453L);
-                    //answerCard.setAnswerId(2529906921L);
-                    answerCard.setTitle(title);
-                    answerCard.setExcerpt(content.substring(0, 10));
-                    answerCard.setContent(content);
-                    //answerCard.setAnswerUrl("https://www.zhihu.com/question/268395554/answer/954662932");
-
-                    answerCard.setUserId(userId1);
-                    answerCard.setUsername("宁静致远");
-                    answerCard.setAvatarUrl("https://pic1.zhimg.com/v2-77ecb55c95c30dba63280263244f1bfc_xll.jpg");
-                    answerCard.setSignature("化工狗");
-                    return answerCard;})
-                .collect(Collectors.toList());
-
-        int total = list.size();
-        return PageList.pageList(page, pageSize, total, list);
-    }
-}

+ 0 - 161
search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/service/CommentService.java

@@ -1,161 +0,0 @@
-package cn.reghao.tnb.search.esapp.comment.service;
-
-import cn.reghao.jutil.jdk.string.SnowFlake;
-import cn.reghao.jutil.jdk.web.db.PageList;
-import cn.reghao.tnb.auth.api.iface.AccountQuery;
-import cn.reghao.tnb.common.auth.UserContext;
-import cn.reghao.tnb.content.api.dto.comment.CommentData;
-import cn.reghao.tnb.content.api.dto.comment.CommentSbtDto;
-import cn.reghao.tnb.content.api.dto.comment.ReplyUser;
-import cn.reghao.tnb.content.api.dto.comment.UserReply;
-import cn.reghao.tnb.search.esapp.comment.db.mongo.UserCommentMongo;
-import cn.reghao.tnb.search.esapp.comment.model.po.UserComment;
-import cn.reghao.tnb.user.api.dto.UserCard;
-import cn.reghao.tnb.user.api.iface.UserService;
-import org.apache.dubbo.config.annotation.DubboReference;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * @author reghao
- * @date 2022-06-16 16:34:29
- */
-@Service
-public class CommentService {
-    @DubboReference(check = false, retries = 0, timeout = 60_000)
-    private UserService userService;
-    @DubboReference(check = false, retries = 0, timeout = 60_000)
-    private AccountQuery accountQuery;
-
-    private final SnowFlake idGenerator;
-    private final UserCommentMongo userCommentMongo;
-
-    public CommentService(UserCommentMongo userCommentMongo) {
-        this.idGenerator = new SnowFlake(1L, 1L);
-        this.userCommentMongo = userCommentMongo;
-    }
-
-    public void saveComment(CommentSbtDto commentSbtDto) {
-        long commentId = idGenerator.nextId();
-        CommentData commentData = commentSbtDto.getNewComment();
-        String userIdStr = commentData.getUser().getUserId();
-        long userId = accountQuery.getUserIdLong(userIdStr);
-        String postId = commentData.getPostId();
-
-        CommentData parent = commentSbtDto.getParent();
-        long parentId = 0;
-        if (parent != null) {
-            parentId = parent.getId();
-        }
-
-        String imageUrl = commentData.getImageUrl();
-        if (imageUrl != null) {
-            commentData.getImageUrls().add(imageUrl);
-        }
-
-        UserComment userComment = new UserComment(commentId, commentData, parentId);
-        userCommentMongo.save(userComment);
-
-        /*VideoPost videoPost = videoPostMapper.findByVideoId(postId);
-        if (videoPost != null) {
-            long publishBy = videoPost.getPublishBy();
-            int msgType = MsgType.commentMsg.getValue();
-            String title = "新评论";
-            String content = "发表了新评论";
-            UserMessageDto userMessageDto = new UserMessageDto(msgType, title, content, publishBy);
-            //userService.sendUserMessage(userMessageDto);
-        }*/
-    }
-
-    @Deprecated
-    public void saveBiliComment(CommentSbtDto commentSbtDto) {
-        long commentId = commentSbtDto.getNewComment().getId();
-        UserComment userComment = userCommentMongo.findByCommentId(commentId);
-        if (userComment != null) {
-            return;
-        }
-
-        CommentData commentData = commentSbtDto.getNewComment();
-        long parentId = commentSbtDto.getParent().getId();
-        userComment = new UserComment(parentId, commentId, commentData);
-        userCommentMongo.save(userComment);
-    }
-
-    public PageList<UserReply> getUserComment(String videoId, int pageNumber) {
-        long total = userCommentMongo.countByPostId(videoId);
-        int pageSize = 10;
-        List<UserReply> list = userCommentMongo.findByPostId(videoId, pageNumber).stream()
-                .map(userComment -> {
-                    long commentId = userComment.getCommentId();
-                    UserReply commentVo = getCommentVo(userComment);
-                    long total1 = userCommentMongo.countChildComment(commentId);
-                    commentVo.setTotal(total1);
-                    List<UserReply> childComments = userCommentMongo.findByParentId(commentId, 1, pageSize).stream()
-                            .map(this::getCommentVo)
-                            .collect(Collectors.toList());
-                    commentVo.setChildren(childComments);
-                    return commentVo;
-                })
-                .collect(Collectors.toList());
-        return PageList.pageList(pageNumber, pageSize, (int) total, list);
-    }
-
-    private UserReply getCommentVo(UserComment userComment) {
-        Long commentId = userComment.getCommentId();
-        Long userId = userComment.getPublishBy();
-        String userIdStr = accountQuery.getUserIdStr(userId);
-        String postId = userComment.getPostId();
-        String content = userComment.getContent();
-        Long createAt = userComment.getPublishAt();
-        String imgSrc = userComment.getImgSrc();
-        List<String> images = userComment.getCommentImages();
-
-        ReplyUser commentUser = new ReplyUser();
-        commentUser.setUserId(userIdStr);
-        UserCard userCard = userService.getUserAvatar(userId);
-        if (userCard != null) {
-            commentUser.setName(userCard.getScreenName());
-            commentUser.setAvatar(userCard.getAvatarUrl());
-        } else {
-            commentUser.setName("哈哈");
-            commentUser.setAvatar("avatar.jpg");
-        }
-
-        long loginUser = UserContext.getUserId();
-        if (loginUser == userId) {
-            commentUser.setAuthor(true);
-        }
-
-        UserReply commentVo = new UserReply();
-        /*commentVo.setVideoId(postId);
-        commentVo.setCommentId(commentId);*/
-        commentVo.setId(commentId);
-        commentVo.setContent(content);
-        commentVo.setImgSrc(imgSrc);
-        commentVo.setCreateAt(createAt);
-        commentVo.setUser(commentUser);
-        commentVo.setLikes(userComment.getLikes());
-        commentVo.setLiked(false);
-
-        if (images != null && !images.isEmpty()) {
-            commentVo.setImgSrc(images.get(0));
-        }
-
-        return commentVo;
-    }
-
-    public PageList<UserReply> getChildComment(long commentId, int pageNumber) {
-        int pageSize = 10;
-        Long total = userCommentMongo.countChildComment(commentId);
-        List<UserReply> list = userCommentMongo.findByParentId(commentId, pageNumber, pageSize).stream()
-                .map(this::getCommentVo)
-                .collect(Collectors.toList());
-        return PageList.pageList(pageNumber, 10, total.intValue(), list);
-    }
-
-    public long countPostComment(String videoId) {
-        return userCommentMongo.countByPostId(videoId);
-    }
-}

+ 0 - 67
search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/service/DanmakuService.java

@@ -1,67 +0,0 @@
-package cn.reghao.tnb.search.esapp.comment.service;
-
-import cn.reghao.jutil.jdk.string.SnowFlake;
-import cn.reghao.jutil.jdk.web.result.Result;
-import cn.reghao.tnb.auth.api.constant.TokenType;
-import cn.reghao.tnb.auth.api.dto.AuthedAccount;
-import cn.reghao.tnb.auth.api.iface.AccountQuery;
-import cn.reghao.tnb.common.util.ConstantId;
-import cn.reghao.tnb.content.api.dto.DanmakuSbtDto;
-import cn.reghao.tnb.search.esapp.comment.db.mongo.UserDanmakuMongo;
-import cn.reghao.tnb.search.esapp.comment.model.po.UserDanmaku;
-import org.apache.dubbo.config.annotation.DubboReference;
-import org.springframework.stereotype.Service;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2021-12-07 15:55:24
- */
-@Service
-public class DanmakuService {
-    @DubboReference(check = false, retries = 0, timeout = 60_000)
-    private AccountQuery accountQuery;
-
-    private final UserDanmakuMongo userDanmakuMongo;
-    private final SnowFlake snowFlake;
-
-    public DanmakuService(UserDanmakuMongo userDanmakuMongo) {
-        this.snowFlake = new SnowFlake(1, 1);
-        this.userDanmakuMongo = userDanmakuMongo;
-    }
-
-    public Result submit(DanmakuSbtDto danmakuSbtDto) {
-        long loginUser = ConstantId.ANONYMOUS_USER_ID;
-        String midHash = danmakuSbtDto.getMidHash();
-        if (midHash == null) {
-            String token = danmakuSbtDto.getToken();
-            AuthedAccount authedAccount = accountQuery.getAuthedAccount(TokenType.token.getValue(), token);
-            if (authedAccount == null) {
-                return Result.fail("not auth");
-            }
-
-            loginUser = authedAccount.getUserId();
-        }
-
-        long dmId = snowFlake.nextId();
-        UserDanmaku userDanmaku = new UserDanmaku(dmId, danmakuSbtDto, loginUser);
-        userDanmakuMongo.save(userDanmaku);
-        return Result.success();
-    }
-
-    public List<List<Object>> getByVideoIdAndSize(String videoId, int size) {
-        List<List<Object>> list = new ArrayList<>();
-        userDanmakuMongo.findByVideoId(videoId, size).forEach(danmakuRetVo -> {
-            List<Object> list1 = new ArrayList<>();
-            list1.add(danmakuRetVo.getTime());
-            list1.add(danmakuRetVo.getType());
-            list1.add(danmakuRetVo.getColor());
-            list1.add(danmakuRetVo.getUserId());
-            list1.add(danmakuRetVo.getText());
-            list.add(list1);
-        });
-        return list;
-    }
-}

+ 0 - 36
search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/service/NewsPostService.java

@@ -1,36 +0,0 @@
-package cn.reghao.tnb.search.esapp.comment.service;
-
-import cn.reghao.jutil.jdk.string.SnowFlake;
-import cn.reghao.jutil.jdk.web.db.PageList;
-import cn.reghao.tnb.search.esapp.comment.db.mongo.RichTextMongo;
-import cn.reghao.tnb.search.esapp.comment.model.po.RichText;
-import cn.reghao.tnb.search.esapp.comment.model.vo.NewsPost;
-import org.springframework.stereotype.Service;
-
-/**
- * @author reghao
- * @date 2025-07-29 14:10:11
- */
-@Service
-public class NewsPostService {
-    private final RichTextMongo richTextMongo;
-    private final SnowFlake idGenerator;
-
-    public NewsPostService(RichTextMongo richTextMongo) {
-        this.richTextMongo = richTextMongo;
-        this.idGenerator = new SnowFlake(1, 1);
-    }
-
-    public void add() {
-    }
-
-    public PageList<NewsPost> getByPage(int pn) {
-        PageList<NewsPost> pageList = richTextMongo.findNewsPostByPage(pn);
-        return pageList;
-    }
-
-    public NewsPost getById(long newsId) {
-        RichText richText = richTextMongo.findByContentId(newsId);
-        return new NewsPost(richText);
-    }
-}

+ 0 - 38
search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/spider/TaskContext.java

@@ -1,38 +0,0 @@
-package cn.reghao.tnb.search.esapp.comment.spider;
-
-import cn.reghao.jutil.jdk.http.WebClient;
-import cn.reghao.jutil.jdk.http.WebRequest;
-import cn.reghao.jutil.jdk.thread.ThreadPoolWrapper;
-import cn.reghao.tnb.search.esapp.comment.db.mongo.RichTextMongo;
-import cn.reghao.tnb.search.esapp.comment.spider.task.GetNewsDetailTask;
-import cn.reghao.tnb.search.esapp.comment.spider.task.GetNewsIndexTask;
-import org.springframework.stereotype.Component;
-
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.ScheduledFuture;
-import java.util.concurrent.TimeUnit;
-
-/**
- * @author reghao
- * @date 2025-07-30 15:48:04
- */
-@Component
-public class TaskContext {
-    private final ScheduledExecutorService scheduler = ThreadPoolWrapper.scheduledThreadPool("get-news", 5);
-    private final WebRequest webRequest = new WebClient();
-    private final RichTextMongo richTextMongo;
-
-    public TaskContext(RichTextMongo richTextMongo) {
-        this.richTextMongo = richTextMongo;
-    }
-
-    //@PostConstruct
-    public void startTask() {
-        GetNewsDetailTask getNewsDetailTask = new GetNewsDetailTask(webRequest, richTextMongo);
-        scheduler.scheduleAtFixedRate(getNewsDetailTask, 0, 1, TimeUnit.HOURS);
-
-        int pastHours = 4;
-        GetNewsIndexTask getNewsIndexTask = new GetNewsIndexTask(webRequest, richTextMongo, pastHours);
-        ScheduledFuture<?> future = scheduler.scheduleAtFixedRate(getNewsIndexTask, 0, pastHours, TimeUnit.HOURS);
-    }
-}

+ 0 - 59
search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/spider/task/GetNewsDetailTask.java

@@ -1,59 +0,0 @@
-package cn.reghao.tnb.search.esapp.comment.spider.task;
-
-import cn.reghao.jutil.jdk.http.WebRequest;
-import cn.reghao.jutil.jdk.http.WebResponse;
-import cn.reghao.tnb.search.esapp.comment.db.mongo.RichTextMongo;
-import cn.reghao.tnb.search.esapp.comment.model.po.RichText;
-import lombok.extern.slf4j.Slf4j;
-import org.jsoup.Jsoup;
-import org.jsoup.nodes.Document;
-import org.jsoup.select.Elements;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2025-07-30 15:44:54
- */
-@Slf4j
-public class GetNewsDetailTask implements Runnable {
-    private final WebRequest webRequest;
-    private final RichTextMongo richTextMongo;
-
-    public GetNewsDetailTask(WebRequest webRequest, RichTextMongo richTextMongo) {
-        this.webRequest = webRequest;
-        this.richTextMongo = richTextMongo;
-    }
-
-    @Override
-    public void run() {
-        List<RichText> richTextList = richTextMongo.findByContentIsNull();
-        for (RichText richText : richTextList) {
-            try {
-                String pageUrl = richText.getOriginalUrl();
-                WebResponse webResponse = webRequest.get(pageUrl);
-                if (webResponse.getStatusCode() != 200) {
-                    log.error("get {} failed", pageUrl);
-                    continue;
-                }
-
-                String body = webResponse.getBody();
-                String html = parsePaperNewsDetail(body);
-                if (html != null) {
-                    richText.setContentType("html");
-                    richText.setContent(html);
-                    richTextMongo.update(richText);
-                }
-                Thread.sleep(1_000);
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        }
-    }
-
-    private String parsePaperNewsDetail(String body) {
-        Document document = Jsoup.parse(body);
-        Elements elements = document.select(".index_wrapper__L_zqV");
-        return elements.size() > 0 ? elements.html() : null;
-    }
-}

+ 0 - 121
search/search-esapp/src/main/java/cn/reghao/tnb/search/esapp/comment/spider/task/GetNewsIndexTask.java

@@ -1,121 +0,0 @@
-package cn.reghao.tnb.search.esapp.comment.spider.task;
-
-import cn.reghao.jutil.jdk.converter.DateTimeConverter;
-import cn.reghao.jutil.jdk.http.WebRequest;
-import cn.reghao.jutil.jdk.http.WebResponse;
-import cn.reghao.jutil.jdk.serializer.JsonConverter;
-import cn.reghao.jutil.jdk.string.SnowFlake;
-import cn.reghao.tnb.search.esapp.comment.db.mongo.RichTextMongo;
-import cn.reghao.tnb.search.esapp.comment.model.po.RichText;
-import com.google.gson.JsonArray;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import lombok.extern.slf4j.Slf4j;
-
-import java.time.Duration;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @author reghao
- * @date 2025-05-06 11:33:42
- */
-@Slf4j
-public class GetNewsIndexTask implements Runnable {
-    private final SnowFlake idGenerator = new SnowFlake(1, 1);
-    private final WebRequest webRequest;
-    private final RichTextMongo richTextMongo;
-    private final int pastHours;
-
-    public GetNewsIndexTask(WebRequest webRequest, RichTextMongo richTextMongo, int pastHours) {
-        this.webRequest = webRequest;
-        this.richTextMongo = richTextMongo;
-        this.pastHours = pastHours;
-    }
-
-    @Override
-    public void run() {
-        LocalDateTime current = LocalDate.now().atStartOfDay();
-        List<Integer> excludeContIds = List.of(30769556,30772115,30772061,30770621,30772060,30771769,30771960,30772059,30772058,30770148,30769570,30767725,30772111,30772110,30767342,30772330);
-        List<Integer> listRecommendIds = List.of(30769556,30772330,30771960,30771769);
-
-        String url1 = "https://api.thepaper.cn/contentapi/nodeCont/getByChannelId";
-        Map<String, Object> map = new HashMap<>();
-        map.put("channelId", "25950");
-        map.put("excludeContIds", excludeContIds);
-        map.put("listRecommendIds", listRecommendIds);
-        map.put("pageSize", "20");
-
-        int pageNum = 1;
-        long startTime = System.currentTimeMillis();
-        while (pageNum < 50) {
-            try {
-                map.put("pageNum", String.valueOf(pageNum++));
-                map.put("startTime", String.valueOf(startTime));
-
-                WebResponse webResponse = webRequest.postJson(url1, JsonConverter.objectToJson(map));
-                if (webResponse.getStatusCode() != 200) {
-                    log.error("get {} failed", url1);
-                    return;
-                }
-
-                String body = webResponse.getBody();
-                JsonObject jsonObject = JsonConverter.jsonToJsonElement(body).getAsJsonObject();
-                int code = jsonObject.get("code").getAsInt();
-                if (code != 200) {
-                    log.error("get {} failed", url1);
-                    return;
-                }
-
-                JsonObject dataObject = jsonObject.get("data").getAsJsonObject();
-                startTime = dataObject.get("startTime").getAsLong();
-                JsonArray jsonArray = dataObject.get("list").getAsJsonArray();
-                List<RichText> richTextList = new ArrayList<>();
-                for (JsonElement jsonElement : jsonArray) {
-                    JsonObject jsonObject1 = jsonElement.getAsJsonObject();
-                    String name = jsonObject1.get("name").getAsString();
-                    String pic = jsonObject1.get("pic").getAsString();
-                    long contId = jsonObject1.get("contId").getAsLong();
-                    long pubTimeLong = jsonObject1.get("pubTimeLong").getAsLong();
-                    String pageUrl = String.format("https://www.thepaper.cn/newsDetail_forward_%s", contId);
-                    RichText richText = richTextMongo.findByOriginalUrl(pageUrl);
-                    if (richText == null) {
-                        long contentId = idGenerator.nextId();
-                        richText = new RichText();
-                        richText.setContentId(contentId);
-                        richText.setOriginalUrl(pageUrl);
-                        richText.setTitle(name);
-                        richText.setCoverUrl(pic);
-                        richText.setPublishAt(pubTimeLong);
-                        richTextList.add(richText);
-                    }
-                }
-
-                if (!richTextList.isEmpty()) {
-                    richTextMongo.saveAll(richTextList);
-
-                    richTextList.sort((o1, o2) -> {
-                        long l = o1.getPublishAt() - o2.getPublishAt();
-                        return (int) l;
-                    });
-
-                    long latestPubTime = richTextList.get(richTextList.size()-1).getPublishAt();
-                    LocalDateTime pubDateTime = DateTimeConverter.localDateTime(latestPubTime);
-                    Duration duration = Duration.between(current, pubDateTime);
-                    if (duration.toHours()+pastHours < 0) {
-                        break;
-                    }
-                }
-                Thread.sleep(1_000);
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        }
-
-        log.info("{} done", this.getClass().getSimpleName());
-    }
-}