Explorar el Código

plan-java v0.56

MOKASZ\lw12420 hace 2 años
padre
commit
fb994a5dc8

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

@@ -145,80 +145,96 @@ public class PlanNewOutController {
      */
     @PostMapping("hfoInfo")
     public Mono<RStatus<DataLists>> hfoInfo(@RequestBody HfoRequest 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)), Domain.class).collectList());
-        Mono<List<Image>> image = template.select(Query.query(Criteria.where("type").is(1)), Image.class).collectList();
-        Mono<List<Material>> text = template.select(Query.query(Criteria.where("type").is(4)), Material.class).collectList();
-        Mono<UserVisits> insert = template.insert(new UserVisits(null, request.getWx_user_id(), 1));
-        Mono<UserVisits> wx_user_id = template.selectOne(Query.query(Criteria.where("wx_user_id").is(request.getWx_user_id())), UserVisits.class)
-                .flatMap(f -> {
-                    if (f.num() >= 4) {
-                        return Mono.just(f);
-                    }else {
-                       return template.update(new UserVisits(f.id(), f.wxUserId(), f.num() + 1));
-                    }
-                }).switchIfEmpty(insert);
-        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(Math.min(i, t3.size()));
-                Domain domain1 = t2.get(Math.min(i, t2.size()));
-                Material material = t4.get(Math.min(i, t4.size()));
-                H5ImageAndText h5ImageAndText = new H5ImageAndText();
-                h5ImageAndText.setImage(image1.image());
-                h5ImageAndText.setDomain(domain1.domain());
-                h5ImageAndText.setName(material.content());
-                h5ImageAndTexts.add(h5ImageAndText);
+        Mono<PlanNew> code0 = template.selectOne(Query.query(Criteria.where("code").is(request.getCode())), PlanNew.class);
+        Mono<DataLists> dataListsMono1 = code0.flatMap(planNew -> {
+            Mono<PlanNew> code = Mono.just(planNew);
+            Mono<List<Domain>> domain = code.flatMap(plan -> template.select(Query.query(Criteria.where("group_type").is(1)), Domain.class).onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()+"6"))).collectList());
+            // //类型 1素材分类2清水分类
+            Mono<List<Image>> image = template.select(Query.query(Criteria.where("type").is(1)), Image.class).onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()+"7"))).collectList();
+            Mono<List<Material>> text = template.select(Query.query(Criteria.where("type").is(4)), Material.class).onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()+"8"))).collectList();
+            Mono<UserVisits> insert = template.insert(new UserVisits(null, request.getWx_user_id(), 1));
+            Mono<UserVisits> wx_user_id = template.selectOne(Query.query(Criteria.where("wx_user_id").is(request.getWx_user_id())), UserVisits.class).onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()+"9")))
+                    .flatMap(f -> {
+                        if (f.num() >= 4) {
+                            return Mono.just(f);
+                        } else {
+                            return template.update(new UserVisits(f.id(), f.wxUserId(), f.num() + 1)).onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()+"10")));
+                        }
+                    }).switchIfEmpty(insert);
+            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(Math.min(i, t3.size()));
+                    Domain domain1 = t2.get(Math.min(i, t2.size()));
+                    Material material = t4.get(Math.min(i, t4.size()));
+                    H5ImageAndText h5ImageAndText = new H5ImageAndText();
+                    h5ImageAndText.setImage(image1.image());
+                    h5ImageAndText.setDomain(domain1.domain());
+                    h5ImageAndText.setName(material.content());
+                    h5ImageAndTexts.add(h5ImageAndText);
+                });
+                return Mono.just(h5ImageAndTexts);
             });
-            return Mono.just(h5ImageAndTexts);
-        });
-        Mono<Audio> listAudio = code.flatMap(plan -> template.selectOne(Query.query(Criteria.where("id").is(plan.listAudioId())), Audio.class));
-        Mono<Audio> retAudioId = code.flatMap(plan -> template.selectOne(Query.query(Criteria.where("id").is(plan.retAudioId())), Audio.class));
-        Mono<ReturnLoop> returnLoop = code.flatMap(plan -> {
-            if(Objects.isNull(plan.returnLoopId())){
-                return Mono.just(getReturnLoop());
-            }else {
-               return  template.selectOne(Query.query(Criteria.where("id").is(plan.returnLoopId())), ReturnLoop.class);
-            }
-        }).switchIfEmpty(Mono.just(getReturnLoop()));
-        Mono<List<Ad>> adtop = template.select(Query.query(Criteria.where("type").is(1)), Ad.class).collectList();////广告类型1顶部2底部3返回4安卓,ios的返回
-        Mono<List<Ad>> bottom = template.select(Query.query(Criteria.where("type").is(2)), Ad.class).collectList();
-        Mono<DataLists> dataListsMono = Mono.zip(code, listAudio, retAudioId, returnLoop, arrayListMono,adtop, bottom,wx_user_id).flatMap(f -> {
-            DataLists dataLists = new DataLists();
-            dataLists.setPlanNew(f.getT1());
-            dataLists.setListAudio(f.getT2());
-            dataLists.setRetAudio(f.getT3());
-            if (-1!=f.getT4().id()) {
-                dataLists.setReturnLoop(f.getT4());
-            }else {
-                dataLists.setReturnLoop(null);
-            }
-            dataLists.setImages(f.getT5());
-            if(f.getT8().num()>=4){
-                dataLists.setIsRet(1);
-            }else {
-                dataLists.setIsRet(-1);
-            }
-            if (f.getT1().topAdvBl()==1) {
-                List<Ad> ads = f.getT6().subList(0, f.getT1().topAdvNum());
-                dataLists.setTopAd(ads);
-            }
-            if (f.getT1().bottomAdvBl()==1) {
-                List<Ad> ads = f.getT7().subList(0, f.getT1().bottomAdvNum());
-                dataLists.setBottomAd(ads);
-            }
-            return Mono.just(dataLists);
-        });
 
-        return RStatus.successList(dataListsMono);
+            Mono<Audio> listAudio = code.flatMap(plan ->{
+                if (Objects.isNull(plan.listAudioId())) {
+                    return Mono.just(new Audio(null,null,null,null,null,null,null,null));
+                }else {
+                    return  template.selectOne(
+                            Query.query(Criteria.where("id").is(plan.listAudioId())),
+                            Audio.class);
+                } }
+            ).onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()+"1")));
+            Mono<Audio> retAudioId = code.flatMap(plan -> template.selectOne(Query.query(Criteria.where("id")
+                    .is(plan.retAudioId())), Audio.class)).onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()+"2")));
+            Mono<ReturnLoop> returnLoop = code.flatMap(plan -> {
+                if (Objects.isNull(plan.returnLoopId())) {
+                    return Mono.just(getReturnLoop());
+                } else {
+                    return template.selectOne(Query.query(Criteria.where("id").is(plan.returnLoopId())), ReturnLoop.class).onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()+"3")));
+                }
+            }).switchIfEmpty(Mono.just(getReturnLoop()));
+            Mono<List<Ad>> adtop = template.select(Query.query(Criteria.where("type").is(1)), Ad.class).onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()+"4"))).collectList();////广告类型1顶部2底部3返回4安卓,ios的返回
+            Mono<List<Ad>> bottom = template.select(Query.query(Criteria.where("type").is(2)), Ad.class).onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()+"5"))).collectList();
+            Mono<DataLists> dataListsMono = Mono.zip(code, listAudio, retAudioId, returnLoop, arrayListMono, adtop, bottom, wx_user_id).flatMap(f -> {
+                DataLists dataLists = new DataLists();
+                dataLists.setPlanNew(f.getT1());
+                if (Objects.nonNull(f.getT2().id())) {
+                    dataLists.setListAudio(f.getT2());
+                }
+                dataLists.setRetAudio(f.getT3());
+                if (-1 != f.getT4().id()) {
+                    dataLists.setReturnLoop(f.getT4());
+                } else {
+                    dataLists.setReturnLoop(null);
+                }
+                dataLists.setImages(f.getT5());
+                if (f.getT8().num() >= 4) {
+                    dataLists.setIsRet(1);
+                } else {
+                    dataLists.setIsRet(-1);
+                }
+                if (f.getT1().topAdvBl() == 1) {
+                    List<Ad> ads = f.getT6().subList(0, f.getT1().topAdvNum());
+                    dataLists.setTopAd(ads);
+                }
+                if (f.getT1().bottomAdvBl() == 1) {
+                    List<Ad> ads = f.getT7().subList(0, f.getT1().bottomAdvNum());
+                    dataLists.setBottomAd(ads);
+                }
+                return Mono.just(dataLists);
+            });
+            return dataListsMono;
+        });
+        return RStatus.successList(dataListsMono1);
     }
 
+    
     private ReturnLoop getReturnLoop() {
         return new ReturnLoop(-1L, null, null, null, null, null, null, null, null, null, null, null, null, null);
     }