添加搜索后端接口
Change-Id: Ie7d87009f4b71ebdf3fdb30f561d4cf85bc6f416
diff --git a/src/main/java/api/ApiController.java b/src/main/java/api/ApiController.java
index 326255d..c2562bc 100644
--- a/src/main/java/api/ApiController.java
+++ b/src/main/java/api/ApiController.java
@@ -27,6 +27,7 @@
import entity.User;
import entity.Post;
import entity.PostReply;
+import entity.UserPT;
import java.util.UUID;
@@ -548,7 +549,6 @@
// 添加 replies 数组
com.fasterxml.jackson.databind.node.ArrayNode repliesArray = mapper.createArrayNode();
if (replies != null) {
- System.out.println("Replies count: " + replies.length);
for (PostReply reply : replies) {
com.fasterxml.jackson.databind.node.ObjectNode replyJson = mapper.createObjectNode();
replyJson.put("replyid", reply.replyid);
@@ -602,7 +602,6 @@
@RequestBody String requestBody
) {
try {
- System.out.println("Add reply request body: " + requestBody);
// 解析 JSON 数据
com.fasterxml.jackson.databind.JsonNode jsonNode = mapper.readTree(requestBody);
com.fasterxml.jackson.databind.JsonNode postidNode = jsonNode.get("postid");
@@ -617,10 +616,6 @@
String authorid = authoridNode.asText();
String content = contentNode.asText();
- System.out.println("Post ID: " + postid);
- System.out.println("Author ID: " + authorid);
- System.out.println("Content: " + content);
-
// 参数验证
if (postid == null || postid.trim().isEmpty() ||
authorid == null || authorid.trim().isEmpty() ||
@@ -629,7 +624,6 @@
}
int ret = db1.AddComment(postid, authorid, content);
- System.out.println("Add comment result: " + ret);
if (ret == 0) {
return new ResponseEntity<>(0, HttpStatus.OK); // 返回 0 表示成功
} else {
@@ -649,20 +643,74 @@
@RequestParam("tag") String tag,
@RequestParam("keyword") String query
) {
- return null;
- // try {
- // Seed[] seeds = db1.SearchSeeds(query);
- // if (seeds == null || seeds.length == 0) {
- // return new ResponseEntity<>("[]", errorHeaders, HttpStatus.INTERNAL_SERVER_ERROR); // 返回 404 表示未找到种子
- // }
- // String json = mapper.writeValueAsString(seeds);
- // return new ResponseEntity<>(json, headers, HttpStatus.OK);
- // } catch (JsonProcessingException e) {
- // e.printStackTrace();
- // return new ResponseEntity<>("[]", errorHeaders, HttpStatus.INTERNAL_SERVER_ERROR);
- // } catch (Exception e) {
- // e.printStackTrace();
- // return new ResponseEntity<>("[]", errorHeaders, HttpStatus.INTERNAL_SERVER_ERROR);
- // }
+ try {
+ Seed[] seeds = db1.SearchSeed(query);
+ if (seeds == null || seeds.length == 0) {
+ return new ResponseEntity<>("[]", errorHeaders, HttpStatus.NOT_FOUND); // 返回 404 表示未找到种子
+ }
+
+ // 过滤掉与前端要求tag不同的种子
+ java.util.List<Seed> filteredSeeds = new java.util.ArrayList<>();
+ for (Seed seed : seeds) {
+ if (seed.seedtag != null && seed.seedtag.equals(tag)) {
+ filteredSeeds.add(seed);
+ }
+ }
+
+ // 如果过滤后没有匹配的种子,返回空数组
+ if (filteredSeeds.isEmpty()) {
+ return new ResponseEntity<>("[]", errorHeaders, HttpStatus.NOT_FOUND);
+ }
+
+ Seed[] filteredSeedsArray = filteredSeeds.toArray(new Seed[0]);
+ String json = mapper.writeValueAsString(filteredSeedsArray);
+ return new ResponseEntity<>(json, headers, HttpStatus.OK);
+ } catch (JsonProcessingException e) {
+ e.printStackTrace();
+ return new ResponseEntity<>("[]", errorHeaders, HttpStatus.INTERNAL_SERVER_ERROR);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return new ResponseEntity<>("[]", errorHeaders, HttpStatus.INTERNAL_SERVER_ERROR);
+ }
+ }
+
+ @Override
+ public ResponseEntity<String> searchPosts(
+ @RequestParam("keyword") String query
+ ) {
+ try {
+ Post[] posts = db1.SearchPost(query);
+ if (posts == null || posts.length == 0) {
+ return new ResponseEntity<>("[]", errorHeaders, HttpStatus.NOT_FOUND); // 返回 404 表示未找到帖子
+ }
+ String json = mapper.writeValueAsString(posts);
+ return new ResponseEntity<>(json, headers, HttpStatus.OK);
+ } catch (JsonProcessingException e) {
+ e.printStackTrace();
+ return new ResponseEntity<>("[]", errorHeaders, HttpStatus.INTERNAL_SERVER_ERROR);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return new ResponseEntity<>("[]", errorHeaders, HttpStatus.INTERNAL_SERVER_ERROR);
+ }
+ }
+
+ @Override
+ public ResponseEntity<String> getUserPT(
+ @RequestParam("userid") String userid
+ ) {
+ try {
+ UserPT userPT = db1.GetInformationPT(userid);
+ if (userPT == null) {
+ return new ResponseEntity<>("", errorHeaders, HttpStatus.NOT_FOUND); // 返回 404 表示未找到用户PT信息
+ }
+ String json = mapper.writeValueAsString(userPT);
+ return new ResponseEntity<>(json, headers, HttpStatus.OK);
+ } catch (JsonProcessingException e) {
+ e.printStackTrace();
+ return new ResponseEntity<>("", errorHeaders, HttpStatus.INTERNAL_SERVER_ERROR);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return new ResponseEntity<>("", errorHeaders, HttpStatus.INTERNAL_SERVER_ERROR);
+ }
}
}
\ No newline at end of file