|
|
@@ -2,19 +2,31 @@ 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;
|
|
|
+import com.toolpage.toolpageservice.ToolPageController.request.ToolPageRes;
|
|
|
import com.toolpage.toolpageservice.ToolPageController.request.ToolPageRollBackRequest;
|
|
|
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.stream.Collectors;
|
|
|
+import java.util.stream.Stream;
|
|
|
|
|
|
|
|
|
@RestController
|
|
|
@@ -28,17 +40,56 @@ public class ToolPageController {
|
|
|
|
|
|
|
|
|
@PostMapping("saveRollBack")
|
|
|
- public Mono<ToolPageRollBack> saveRollBack(@RequestBody ToolPageRollBackRequest request){
|
|
|
- ToolPageRollBack toolPageRollBack =new ToolPageRollBack(request.getRoll_id(),request.getType(),request.getType_describe(),request.getProjectid(),
|
|
|
- request.getPromotionid(),request.getPromotionid(),request.getClickid(),request.getTool_page_id(),request.getId(), ZonedDateTime.now());
|
|
|
- Mono<ToolPageRollBack> save = toolPageRollbackRepository.save(toolPageRollBack);
|
|
|
- return save;
|
|
|
+ public Mono<RW<ToolPageRollBack>> saveRollBack(@RequestBody ToolPageRollBackRequest request){
|
|
|
+ ToolPageRollBack toolPageRollBack =new ToolPageRollBack(null,
|
|
|
+ request.getType(),
|
|
|
+ request.getType_describe(),
|
|
|
+ request.getProjectid(),
|
|
|
+ request.getPromotionid(),
|
|
|
+ request.getPromotionid(),
|
|
|
+ request.getClickid(),
|
|
|
+ request.getTool_page_id(),
|
|
|
+ request.getId(),
|
|
|
+ ZonedDateTime.now());
|
|
|
+ Mono<ToolPageRollBack> save = toolPageRollbackRepository.save(toolPageRollBack)
|
|
|
+ .switchIfEmpty(Mono.error(new IllegalStateException("查询为空")))
|
|
|
+ .onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage())));
|
|
|
+ return RW.success(save);
|
|
|
}
|
|
|
|
|
|
|
|
|
@GetMapping("getOneById/{toolPageId}")
|
|
|
- public Mono<ToolPage> getOneById(@PathVariable("toolPageId") Long toolPageId){
|
|
|
- return repository.findById(toolPageId);
|
|
|
+ public Mono<RW<ToolPageRes>> getOneById(@PathVariable("toolPageId") Long toolPageId){
|
|
|
+ Mono<ToolPageRes> map = repository.findById(toolPageId)
|
|
|
+ .switchIfEmpty(Mono.error(new IllegalStateException("查询为空")))
|
|
|
+ .onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()))).map(m -> {
|
|
|
+ ToolPageRes res = new ToolPageRes();
|
|
|
+ res.setToolPage(m);
|
|
|
+ String s = m.relatedPageContent();
|
|
|
+ if (Objects.nonNull(s) && !"".equals(s)) {
|
|
|
+ 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);
|
|
|
+ });
|
|
|
+ res.setChildrens(toolPageOrders);
|
|
|
+ }else {
|
|
|
+ res.setChildrens(new ArrayList<>());
|
|
|
+ }
|
|
|
+ return res;
|
|
|
+ });
|
|
|
+ return RW.success(map);
|
|
|
}
|
|
|
|
|
|
}
|