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

+ 25 - 11
launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/planNew/PlanNewController.java

@@ -519,21 +519,35 @@ public class PlanNewController {
             );
             );
             return Mono.just(planNew);
             return Mono.just(planNew);
         }).flatMap(template::update);
         }).flatMap(template::update);
-
-        Mono<PlanNew> map = planNewMono.map(f->{
-            template.delete(Query.query(Criteria.where("plan_new_id").is(f.planNewId())),PlanNewBackgroupPoster.class).subscribe();
-            return f;
-        }).map(f -> {
+        Mono<PlanNew> map = planNewMono.flatMap(f -> {
+            Query plan_new_id = Query.query(Criteria.where("plan_new_id").is(f.planNewId()));
+            Mono<Long> longMono = template.count(plan_new_id, PlanNewBackgroupPoster.class)
+                    .filter(f0 -> f0 > 0)
+                    .flatMap(f1 -> template.delete(plan_new_id, PlanNewBackgroupPoster.class))
+                    .switchIfEmpty(Mono.just(-1L));
             List<ServiceGroupSettingItemRequest> backgroupFxSetting = saveRequest.getBackgroupFxSetting();
             List<ServiceGroupSettingItemRequest> backgroupFxSetting = saveRequest.getBackgroupFxSetting();
-            backgroupFxSetting.forEach(fx -> fxBackgroupSettingsUpdate(fx, f.planNewId(), 1));
+            List<PlanNewBackgroupPoster> collect = backgroupFxSetting.stream()
+                    .map(fx -> fxBackgroupSettingsUpdate(fx, f.planNewId(), 1)).collect(Collectors.toList());
             List<ServiceGroupSettingItemRequest> backgroupQsSetting = saveRequest.getBackgroupQsSetting();
             List<ServiceGroupSettingItemRequest> backgroupQsSetting = saveRequest.getBackgroupQsSetting();
-            backgroupQsSetting.forEach(qs -> fxBackgroupSettingsUpdate(qs, f.planNewId(), 2));
-            return f;
+            List<PlanNewBackgroupPoster> collect1 = backgroupQsSetting
+                    .stream()
+                    .map(qs -> fxBackgroupSettingsUpdate(qs, f.planNewId(), 2))
+                    .collect(Collectors.toList());
+            collect.addAll(collect1);
+            Flux<PlanNewBackgroupPoster> planNewBackgroupPosterFlux = Flux.fromIterable(collect1);
+            Mono<List<PlanNewBackgroupPoster>> listMono = planNewBackgroupPosterFlux.flatMap(entity -> template
+                    .insert(PlanNewBackgroupPoster.class).using(entity)).collectList();
+            Mono<PlanNew> longMono1 = Mono.zip(listMono, Mono.just(f), longMono).flatMap(ff -> {
+                PlanNew t2 = ff.getT2();
+                return Mono.just(t2);
+            });
+            return longMono1;
         });
         });
         return RStatus.success(map);
         return RStatus.success(map);
 
 
     }
     }
-    public void fxBackgroupSettingsUpdate( ServiceGroupSettingItemRequest request,Long planNewId,Integer qsOrFx){
+
+    public PlanNewBackgroupPoster fxBackgroupSettingsUpdate( ServiceGroupSettingItemRequest request,Long planNewId,Integer qsOrFx){
         PlanNewBackgroupPoster planNewBackgroupPoster = new PlanNewBackgroupPoster(request.getId(),
         PlanNewBackgroupPoster planNewBackgroupPoster = new PlanNewBackgroupPoster(request.getId(),
                 request.getAudioId(),
                 request.getAudioId(),
                 request.getGroupId(),
                 request.getGroupId(),
@@ -550,8 +564,8 @@ public class PlanNewController {
                 ZonedDateTime.now(),
                 ZonedDateTime.now(),
                 null,
                 null,
                 planNewId,null,null);
                 planNewId,null,null);
-        template.insert(planNewBackgroupPoster).subscribe();
-
+       // template.insert(planNewBackgroupPoster).subscribe();
+        return planNewBackgroupPoster;
     }
     }
     /**
     /**
      * 复制计划
      * 复制计划