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

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

@@ -456,8 +456,8 @@ public class PlanNewController {
      * @param saveRequest
      * @return {@link Mono}<{@link RStatus}<{@link PlanNew}>>
      */
-    @PostMapping("updatePlan")
-    public Mono<RStatus<PlanNew>> updatePlan(@RequestBody PlanReq saveRequest){
+    @PostMapping("updatePlan1")
+    public Mono<RStatus<PlanNew>> updatePlan1(@RequestBody PlanReq saveRequest){
         Long posterTemplateId = saveRequest.getPosterTemplateId();
         Mono<String> stringMono1 = template
                 .select(Query.query(Criteria.where("poster_template_id").is(posterTemplateId)).sort(Sort.by(Sort.Order.asc("created_at"))), Poster.class)
@@ -547,6 +547,101 @@ public class PlanNewController {
 
     }
 
+    @PostMapping("updatePlan")
+    public Mono<RStatus<PlanNew>> updatePlan(@RequestBody PlanReq saveRequest){
+        Long posterTemplateId = saveRequest.getPosterTemplateId();
+        Mono<String> stringMono1 = template
+                .select(Query.query(Criteria.where("poster_template_id").is(posterTemplateId)).sort(Sort.by(Sort.Order.asc("created_at"))), Poster.class)
+                .collectList().flatMap(f -> {
+                    Poster poster = f.get(0);
+                    String posterTemplate = poster.posterTemplate();
+                    JSONObject jsonObject = JSONUtil.parseObj(posterTemplate);
+                    GoRequest goRequest = new GoRequest();
+                    BeanUtil.copyProperties(jsonObject, goRequest);
+                    ServiceGroupSettingItemRequest serviceGroupSettingItemRequest = saveRequest.getBackgroupFxSetting().get(0);
+                    Mono<String> stringMono = goGenerateService.saveAndUpdatePlanGenerateImage0(goRequest,
+                            goGenerateService.getStringBuilderMono(goRequest), serviceGroupSettingItemRequest, saveRequest);
+                    return stringMono;
+                });
+        Mono<PlanNew> plan_new_id1 = template.selectOne(Query.query(Criteria.where("plan_new_id").is(saveRequest.getPlanNewId())), PlanNew.class);
+
+        Mono<StringBuilder> stringBuilderMono ;
+        if(saveRequest.getRedirectType()==2){
+            stringBuilderMono = Mono.just(new StringBuilder(""));//goGenerateService.byPlanNewIdGetUrl(saveRequest.getRedirectPlanId());
+        }else {
+            stringBuilderMono=Mono.just(new StringBuilder(saveRequest.getLink()));
+        }
+        Mono<PlanNew> planNewMono = Mono.zip(stringMono1, plan_new_id1, stringBuilderMono).flatMap(f -> {
+            PlanNew map = f.getT2();
+            PlanNew planNew = new PlanNew(
+                    saveRequest.getPlanNewId(),
+                    saveRequest.getName(),
+                    map.createUser(),
+                    map.createId(),
+                    map.createdAt(),
+                    ZonedDateTime.now(),
+                    map.deletedAt(),
+                    saveRequest.getType(),
+                    map.code(),
+                    saveRequest.getGroupId(),
+                    saveRequest.getPosterTemplateId(),
+                    saveRequest.getPageShow(),
+                    saveRequest.getPageLine(),
+                    saveRequest.getCount(),
+                    saveRequest.getListAudioId(),
+                    saveRequest.getRetAudioId(),
+                    f.getT3().toString(),
+                    saveRequest.getIsAddQun(),
+                    saveRequest.getBackgroundGroupId(),
+                    saveRequest.getHomePageId(),
+                    saveRequest.getTopAdvNum(),
+                    saveRequest.getBottomAdvNum(),
+                    saveRequest.getReturnLoopId(),
+                    saveRequest.getBackgroundGroupQsId(),
+                    saveRequest.getTopAdvBl(),
+                    saveRequest.getBottomAdvBl(),
+                    saveRequest.getReturnLoopBl(),
+                    saveRequest.getGroupIdQs(),
+                    saveRequest.getBaiduDot(),
+                    saveRequest.getBackgroundGroupIdNewAdd(),
+                    f.getT1(),
+                    saveRequest.getRedirectType(),
+                    saveRequest.getRedirectPlanId()
+            );
+            return Mono.just(planNew);
+        }).flatMap(template::update);
+        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 -> {
+                        System.out.println(f0);
+                        return f0 > 0;
+                    })
+                    .flatMap(f1 -> template.delete(plan_new_id, PlanNewBackgroupPoster.class))
+                    .switchIfEmpty(Mono.just(-1L));
+            return Mono.zip(Mono.just(f),longMono).flatMap(f11->Mono.just(f11.getT1()));
+        }).flatMap(f->{
+            List<ServiceGroupSettingItemRequest> backgroupFxSetting = saveRequest.getBackgroupFxSetting();
+            List<PlanNewBackgroupPoster> collect = backgroupFxSetting.stream()
+                    .map(fx -> fxBackgroupSettingsUpdate(fx, f.planNewId(), 1)).collect(Collectors.toList());
+            List<ServiceGroupSettingItemRequest> backgroupQsSetting = saveRequest.getBackgroupQsSetting();
+            List<PlanNewBackgroupPoster> collect1 = backgroupQsSetting
+                    .stream()
+                    .map(qs -> fxBackgroupSettingsUpdate(qs, f.planNewId(), 2))
+                    .collect(Collectors.toList());
+            collect.addAll(collect1);
+            Flux<PlanNewBackgroupPoster> planNewBackgroupPosterFlux = Flux.fromIterable(collect);
+            Mono<List<PlanNewBackgroupPoster>> listMono = planNewBackgroupPosterFlux.flatMap(entity -> template
+                    .insert(entity)).collectList();
+            Mono<PlanNew> longMono2= Mono.zip(listMono, Mono.just(f) ).flatMap(ff -> {
+                PlanNew t2 = ff.getT2();
+                return Mono.just(t2);
+            });
+            return longMono2;
+        });
+        return RStatus.success(map);
+    }
+
     public PlanNewBackgroupPoster fxBackgroupSettingsUpdate( ServiceGroupSettingItemRequest request,Long planNewId,Integer qsOrFx){
         PlanNewBackgroupPoster planNewBackgroupPoster = new PlanNewBackgroupPoster(null,
                 request.getAudioId(),