MOKASZ\lw12420 2 лет назад
Родитель
Сommit
729eb9e4d2

+ 26 - 24
src/main/java/com/toolpage/toolpageservice/ToolPageController/ToolPageController.java

@@ -4,7 +4,6 @@ package com.toolpage.toolpageservice.ToolPageController;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.json.JSONArray;
-import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
 import com.toolpage.toolpageservice.ToolPageController.request.OrderAndToolPageId;
 import com.toolpage.toolpageservice.ToolPageController.request.ToolPageOrder;
@@ -14,19 +13,17 @@ import com.toolpage.toolpageservice.entity.ToolPage;
 import com.toolpage.toolpageservice.entity.ToolPageRollBack;
 import com.toolpage.toolpageservice.repository.ToolPageRepository;
 import com.toolpage.toolpageservice.repository.ToolPageRollbackRepository;
-import com.toolpage.toolpageservice.service.ToolPageService;
 
 import com.toolpage.toolpageservice.tool.RW;
 import jakarta.annotation.Resource;
 import org.springframework.web.bind.annotation.*;
-import reactor.core.Disposable;
 import reactor.core.publisher.Flux;
 import reactor.core.publisher.Mono;
 
 import java.time.ZonedDateTime;
 import java.util.*;
+import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 
 @RestController
@@ -57,39 +54,44 @@ public class ToolPageController {
         return RW.success(save);
     }
 
+    @GetMapping("getChildrens/{toolPageIds}")
+    public Mono<RW<List<ToolPage>>> getChildrens(@PathVariable("toolPageIds") Long[] toolPageIds){
+        Mono<List<ToolPage>> rt = repository.findAllById(List.of(toolPageIds))
+                .switchIfEmpty(Mono.error(new IllegalStateException("查询为空")))
+                .onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()))).collectList();
+        return  RW.success(rt);
+    }
 
     @GetMapping("getOneById/{toolPageId}")
     public Mono<RW<ToolPageRes>> getOneById(@PathVariable("toolPageId") Long toolPageId){
-        Mono<ToolPageRes> map = repository.findById(toolPageId)
+
+        Mono<ToolPageRes> rt = repository.findById(toolPageId)
                 .switchIfEmpty(Mono.error(new IllegalStateException("查询为空")))
-                .onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()))).map(m -> {
+                .onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage())))
+                .map(m -> {
                     ToolPageRes res = new ToolPageRes();
                     res.setToolPage(m);
                     String s = m.relatedPageContent();
+                    ArrayList<OrderAndToolPageId> orderAndToolPageIds = new ArrayList<>();
+                    System.out.println("1");
                     if (Objects.nonNull(s) && !"".equals(s)) {
+                        System.out.println("12");
                         JSONArray jsonArray = JSONUtil.parseArray(s);
-                        List<Long> toolPageId1 = jsonArray.stream().map(m1 -> JSONUtil.parseObj(m1).get("toolPageId", Long.class)).collect(Collectors.toList());
-                        ArrayList<ToolPageOrder> toolPageOrders = new ArrayList<>();
-                        repository.findAllById(toolPageId1).subscribe(m2 -> {
-                            ToolPageOrder toolPageOrder = new ToolPageOrder();
-                            Optional<Integer> first = jsonArray.stream().map(JSONUtil::parseObj)
-                                    .filter(f -> f.containsKey("toolPageId") && f.containsKey("order"))
-                                    .filter(f12->{
-                                        long toolPageId2 = f12.get("toolPageId",Long.class);
-                                        long aLong = m2.toolPageId();
-                                        return toolPageId2==aLong;
-                                    }).map(f -> f.get("order", Integer.class)).findFirst();
-                            toolPageOrder.setToolPage(m2);
-                            first.ifPresent(toolPageOrder::setOrder);
-                            toolPageOrders.add(toolPageOrder);
+                        jsonArray.stream().map(JSONUtil::parseObj).forEach(fe -> {
+                            OrderAndToolPageId orderAndToolPageId = new OrderAndToolPageId();
+                            BeanUtil.copyProperties(fe, orderAndToolPageId);
+                            orderAndToolPageIds.add(orderAndToolPageId);
                         });
-                        res.setChildrens(toolPageOrders);
-                    }else {
-                        res.setChildrens(new ArrayList<>());
                     }
+                    res.setChildrens(orderAndToolPageIds);
+
+                    res.setToolPageIds(orderAndToolPageIds.stream().map(OrderAndToolPageId::getToolPageId).collect(Collectors.toList()));
+                    System.out.println(res);
                     return res;
                 });
-        return  RW.success(map);
+
+
+        return  RW.success(rt);
     }
 
 }

+ 2 - 1
src/main/java/com/toolpage/toolpageservice/ToolPageController/request/ToolPageRes.java

@@ -10,6 +10,7 @@ import java.util.List;
 public class ToolPageRes {
 
     ToolPage toolPage;
+    List<Long> toolPageIds;
+    List<OrderAndToolPageId> childrens;
 
-    List<ToolPageOrder> childrens ;
 }

+ 0 - 1
src/main/java/com/toolpage/toolpageservice/tool/RW.java

@@ -14,7 +14,6 @@ import java.io.Serializable;
  * @author lyr
  */
 @Data
-
 public class RW<T> implements Serializable {
 
     private static final long serialVersionUID = 1L;