Преглед изворни кода

图片名称按照计划分类随机

(cherry picked from commit da9905b43f93c7ab821c98b21fcd9901d5ae4ff1)
MOKASZ\lw12420 пре 2 година
родитељ
комит
e88f7b9afb

+ 78 - 43
launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/planNew/PlanNewOutController.java

@@ -180,57 +180,92 @@ public class PlanNewOutController {
     /**
      * 列表返回images(列表内容),shareQrurl(背景组) ,baiduDot,retAudio
      * Mono<RStatus<DataListsKefu>>
+     *     //  return Mono.just(new Audio(null,null,null,null,null,null,null,null));
      */
 
     @PostMapping("kefuList")
     public Mono<RStatus<DataListsKefu>> kefuList(@RequestBody KefuRequest request){
-        Mono<PlanNew> code = template.selectOne(Query.query(Criteria.where("code").is(request.getCode())), PlanNew.class);
-        // //类型 1素材分类2清水分类
-        Mono<List<Domain>> domain = code.flatMap(plan -> template.select(Query.query(Criteria.where("group_type").is(1).and("deleted_at").isNull()), Domain.class).collectList());
-        Mono<List<Image>> image = template.select(Query.query(Criteria.where("type").is(5).and("deleted_at").isNull()), Image.class).collectList();
-        Mono<List<Material>> text = template.select(Query.query(Criteria.where("type").is(11).and("deleted_at").isNull()), Material.class).collectList();
-        Mono<List<H5ImageAndText>> arrayListMono = Mono.zip(code, domain, image, text).flatMap(f -> {
-            //H5ImageAndText
-            Integer integer = f.getT1().pageShow();//群数量
-            List<Domain> t2 = f.getT2();
-            List<Image> t3 = f.getT3();
-            List<Material> t4 = f.getT4();
-            List<H5ImageAndText> h5ImageAndTexts = new ArrayList<>();
-            IntStream.range(0, integer).forEach(i -> {
-                Image image1 = t3.get(RandomUtil.randomInt(0,t3.size()));
-                Domain domain1 = t2.get(RandomUtil.randomInt(0,t2.size()));
-                Material material = t4.get(RandomUtil.randomInt(0,t4.size()));
-                H5ImageAndText h5ImageAndText = new H5ImageAndText();
-                h5ImageAndText.setImage(image1.image());
-                h5ImageAndText.setDomain(domain1.domain());
-                h5ImageAndText.setName(material.content());
-                h5ImageAndText.setRemark(material.remark());
-                h5ImageAndTexts.add(h5ImageAndText);
+        Mono<PlanNew> code = template.selectOne(Query.query(Criteria.where("code").is(request.getCode())), PlanNew.class)
+                .switchIfEmpty(Mono.error(new BaseException("code查询返回结构为空"))) //Mono.error(new BaseException("查询海报模版 id:"+f.posterTemplateId()+"=>空"))
+                .onErrorResume(throwable -> Mono.error(new Exception("通过code查询计划异常::" + throwable.getMessage())));
+        Mono<DataListsKefu> dataListsKefuMono = code.flatMap(planNew -> {
+            Mono<List<Image>> image = template.select(Query.query(Criteria.where("type").is(5)
+                    .and("deleted_at").isNull()
+                    .and("group_type_id").is(planNew.groupId())), Image.class)
+                    .collectList()
+                    .switchIfEmpty(Mono.error(new BaseException(StrUtil.format("通过计划groupId:{}查询Image返回结构为空", planNew.groupId()))))
+                    .onErrorResume(throwable ->
+                            Mono.error(new Exception(StrUtil.format("通过计划groupId:{}查询Image返回结果error:{}", planNew.groupId(), throwable.getMessage()))));
+            Mono<List<Material>> text = template.select(Query.query(Criteria.where("type").is(11)
+                            .and("group_type_id").is(planNew.groupId())
+                            .and("deleted_at").isNull()), Material.class)
+                    .switchIfEmpty(Mono.error(new BaseException(StrUtil.format("通过计划groupId:{}查询Material返回结构为空", planNew.groupId()))))
+                    .onErrorResume(throwable ->
+                            Mono.error(new Exception(StrUtil.format("通过计划groupId:{}查询Material返回结果error:{}", planNew.groupId(), throwable.getMessage()))))
+                    .collectList();
+            Mono<List<H5ImageAndText>> arrayListMono = Mono.zip(Mono.just(planNew), image, text).flatMap(f -> {
+                //H5ImageAndText
+                Integer integer = f.getT1().pageShow();//群数量
+                //List<Domain> t2 = f.getT2();
+                List<Image> t3 = f.getT2();
+                List<Material> t4 = f.getT3();
+                List<H5ImageAndText> h5ImageAndTexts = new ArrayList<>();
+                IntStream.range(0, integer).forEach(i -> {
+                    Image image1 = t3.get(RandomUtil.randomInt(0, t3.size()));
+                    //  Domain domain1 = t2.get(RandomUtil.randomInt(0,t2.size()));
+                    Material material = t4.get(RandomUtil.randomInt(0, t4.size()));
+                    H5ImageAndText h5ImageAndText = new H5ImageAndText();
+                    h5ImageAndText.setImage(image1.image());
+                    //  h5ImageAndText.setDomain(domain1.domain());
+                    h5ImageAndText.setName(material.content());
+                    h5ImageAndText.setRemark(material.remark());
+                    h5ImageAndTexts.add(h5ImageAndText);
+                });
+                return Mono.just(h5ImageAndTexts);
             });
-            return Mono.just(h5ImageAndTexts);
+            Mono<List<BackgroupImageItem>> group_id = Mono.just(planNew)
+                    .filter(ft -> Objects.nonNull(ft.backgroundGroupIdNewAdd()))
+                    .flatMap(plan ->
+                            template.select(Query.query(Criteria.where("group_id")
+                            .is(plan.backgroundGroupIdNewAdd())), BackgroupImageItem.class).collectList())
+                    .switchIfEmpty(Mono.just(List.of()));
+            Mono<Audio> retAudioId = Mono.just(planNew).flatMap(plan -> {
+                if(Objects.nonNull(plan.retAudioId())){
+                   return template.selectOne(Query.query(Criteria.where("id").is(plan.retAudioId())), Audio.class)
+                           .switchIfEmpty(Mono.error(new BaseException(StrUtil.format("通过计划retAudioId:{}查询音频为空",plan.retAudioId()))))
+                           .onErrorResume(throwable -> Mono.error(new BaseException(StrUtil.format("通过计划retAudioId:{}查询音频Error::",plan.retAudioId(),throwable.getMessage()))));
+                }else {
+                    return Mono.just(new Audio(null,null,null,null,null,null,null,null));
+                }
+            });
+            Mono<DataListsKefu> dataListsMono = Mono.zip(Mono.just(planNew), group_id, retAudioId, arrayListMono).flatMap(f -> {
+                DataListsKefu dataLists = new DataListsKefu();
+                dataLists.setPlanNew(f.getT1());
+                dataLists.setBaiduDot(f.getT1().baiduDot());
+                List<BackgroupImageItem> t2 = f.getT2();
+                if (!t2.isEmpty()) {
+                    List<String> collect = t2.stream().map(BackgroupImageItem::image).collect(Collectors.toList());
+                    dataLists.setShareQrurl(collect);
+                }
+                if(Objects.nonNull(f.getT3().id())){
+                    dataLists.setRetAudio(f.getT3());
+                }
+                dataLists.setImages(f.getT4());
+                return Mono.just(dataLists);
+            });
+            return dataListsMono;
         });
+        // //类型 1素材分类2清水分类
+      //  Mono<List<Domain>> domain = code.flatMap(plan -> template.select(Query.query(Criteria.where("group_type").is(1).and("deleted_at").isNull()), Domain.class).collectList());
+      //  Mono<List<Image>> image = template.select(Query.query(Criteria.where("type").is(5).and("deleted_at").isNull()), Image.class).collectList();
+      //  Mono<List<Material>> text = template.select(Query.query(Criteria.where("type").is(11).and("deleted_at").isNull()), Material.class).collectList();
 
-        Mono<List<BackgroupImageItem>> group_id = code.filter(ft->Objects.nonNull(ft.backgroundGroupIdNewAdd())).flatMap(plan -> template
-                .select(Query.query(Criteria.where("group_id")
-                        .is(plan.backgroundGroupIdNewAdd())), BackgroupImageItem.class).collectList())
-                .switchIfEmpty(Mono.just(List.of()));
-        Mono<Audio> retAudioId = code.flatMap(plan -> template.selectOne(Query.query(Criteria.where("id").is(plan.retAudioId())), Audio.class));
-
-        Mono<DataListsKefu> dataListsMono = Mono.zip(code, group_id, retAudioId, arrayListMono).flatMap(f -> {
-            DataListsKefu dataLists = new DataListsKefu();
-            dataLists.setPlanNew(f.getT1());
-            dataLists.setBaiduDot(f.getT1().baiduDot());
-            List<BackgroupImageItem> t2 = f.getT2();
-            if (!t2.isEmpty()) {
-                List<String> collect = t2.stream().map(BackgroupImageItem::image).collect(Collectors.toList());
-                dataLists.setShareQrurl(collect);
-            }
-            dataLists.setRetAudio(f.getT3());
-            dataLists.setImages(f.getT4());
-            return Mono.just(dataLists);
-        });
+//        Mono<List<BackgroupImageItem>> group_id = code.filter(ft->Objects.nonNull(ft.backgroundGroupIdNewAdd())).flatMap(plan -> template
+//                .select(Query.query(Criteria.where("group_id")
+//                        .is(plan.backgroundGroupIdNewAdd())), BackgroupImageItem.class).collectList())
+//                .switchIfEmpty(Mono.just(List.of()));
 
-        return RStatus.successList(dataListsMono);
+        return RStatus.successList(dataListsKefuMono);
     }
     /**
      * h5-通过code (第一个接口)