Просмотр исходного кода

Merge branch 'pro' of http://git.mokasz.com/liuwei/launch-webFlux-platform into dev-w

# Conflicts:
#	launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/planNew/PlanNewController.java
wangcheng 2 лет назад
Родитель
Сommit
3fae79fed7

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

@@ -456,6 +456,10 @@ public class PlanNewController {
                 stringBuilderMono = Mono.just(new StringBuilder(saveRequest.getLink()));
                 stringBuilderMono = Mono.just(new StringBuilder(saveRequest.getLink()));
             }
             }
             Mono<PlanNew> insert = Mono.zip(stringMono1, stringBuilderMono).flatMap(f -> {
             Mono<PlanNew> insert = Mono.zip(stringMono1, stringBuilderMono).flatMap(f -> {
+                String listButton = "立即入群";
+                if (Objects.nonNull(saveRequest.getListButton()) && !"".equals(saveRequest.getListButton().trim())) {
+                    listButton = saveRequest.getListButton();
+                }
                 PlanNew plan = new PlanNew(IdUtil.fastSimpleUUID(),
                 PlanNew plan = new PlanNew(IdUtil.fastSimpleUUID(),
                         saveRequest.getName(),
                         saveRequest.getName(),
                         userName,
                         userName,
@@ -493,7 +497,8 @@ public class PlanNewController {
                         saveRequest.getLandingPageDomain(),
                         saveRequest.getLandingPageDomain(),
                         saveRequest.getTransferPageDomain(),
                         saveRequest.getTransferPageDomain(),
                         saveRequest.getTransferPageBl(),
                         saveRequest.getTransferPageBl(),
-                        saveRequest.getBackgroupDomain()
+                        saveRequest.getBackgroupDomain(),
+                        listButton
                 );
                 );
                 return template.insert(plan);
                 return template.insert(plan);
             });
             });
@@ -556,108 +561,6 @@ public class PlanNewController {
     }
     }
 
 
 
 
-    /**
-     * 修改计划
-     *
-     * @param saveRequest
-     * @return {@link Mono}<{@link RStatus}<{@link PlanNew}>>
-     */
-    @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)
-                .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(),
-                    null,
-                    null,
-                    null,
-                    null,
-                    null
-            );
-            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 -> f0 > 0)
-                    .flatMap(f1 -> template.delete(plan_new_id, PlanNewBackgroupPoster.class))
-                    .switchIfEmpty(Mono.just(-1L));
-            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(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);
-
-    }
-
     @PostMapping("updatePlan")
     @PostMapping("updatePlan")
     public Mono<RStatus<String>> updatePlan(@RequestBody PlanReq saveRequest) {
     public Mono<RStatus<String>> updatePlan(@RequestBody PlanReq saveRequest) {
         if (2 == saveRequest.getType()) {
         if (2 == saveRequest.getType()) {
@@ -688,6 +591,10 @@ public class PlanNewController {
             }
             }
             Mono<PlanNew> planNewMono = Mono.zip(stringMono1, plan_new_id1, stringBuilderMono).flatMap(f -> {
             Mono<PlanNew> planNewMono = Mono.zip(stringMono1, plan_new_id1, stringBuilderMono).flatMap(f -> {
                 PlanNew map = f.getT2();
                 PlanNew map = f.getT2();
+                String listButton = "立即入群";
+                if (Objects.nonNull(saveRequest.getListButton()) && !"".equals(saveRequest.getListButton().trim())) {
+                    listButton = saveRequest.getListButton();
+                }
                 PlanNew planNew = new PlanNew(
                 PlanNew planNew = new PlanNew(
                         saveRequest.getPlanNewId(),
                         saveRequest.getPlanNewId(),
                         saveRequest.getName(),
                         saveRequest.getName(),
@@ -726,7 +633,8 @@ public class PlanNewController {
                         saveRequest.getLandingPageDomain(),
                         saveRequest.getLandingPageDomain(),
                         saveRequest.getTransferPageDomain(),
                         saveRequest.getTransferPageDomain(),
                         saveRequest.getTransferPageBl(),
                         saveRequest.getTransferPageBl(),
-                        saveRequest.getBackgroupDomain()
+                        saveRequest.getBackgroupDomain(),
+                        listButton
                 );
                 );
                 return Mono.just(planNew);
                 return Mono.just(planNew);
             }).flatMap(template::update);
             }).flatMap(template::update);
@@ -820,7 +728,8 @@ public class PlanNewController {
                             saveRequest.landingPageDomain(),
                             saveRequest.landingPageDomain(),
                             saveRequest.transferPageDomain(),
                             saveRequest.transferPageDomain(),
                             saveRequest.transferPageBl(),
                             saveRequest.transferPageBl(),
-                            saveRequest.backgroupDomain()
+                            saveRequest.backgroupDomain(),
+                            saveRequest.listButton()
                     )).flatMap(map -> template.insert(map));
                     )).flatMap(map -> template.insert(map));
             Mono<List<PlanNewBackgroupPoster>> listening_plan_new_id1 =
             Mono<List<PlanNewBackgroupPoster>> listening_plan_new_id1 =
                     template.select(Query.query(Criteria.where("plan_new_id")
                     template.select(Query.query(Criteria.where("plan_new_id")
@@ -941,10 +850,9 @@ public class PlanNewController {
                                         saveRequest.previewUrl(),
                                         saveRequest.previewUrl(),
                                         saveRequest.redirectType(),
                                         saveRequest.redirectType(),
                                         saveRequest.redirectPlanId(),
                                         saveRequest.redirectPlanId(),
-                                        null,
+                                        saveRequest.listButton(),
                                         Objects.nonNull(saveRequest.importDomain()) && !"".equals(saveRequest.importDomain().trim()) ? Integer.valueOf(saveRequest.importDomain()) : null,
                                         Objects.nonNull(saveRequest.importDomain()) && !"".equals(saveRequest.importDomain().trim()) ? Integer.valueOf(saveRequest.importDomain()) : null,
                                         Objects.nonNull(saveRequest.landingPageDomain()) && !"".equals(saveRequest.landingPageDomain().trim()) ? Integer.valueOf(saveRequest.landingPageDomain()) : null,
                                         Objects.nonNull(saveRequest.landingPageDomain()) && !"".equals(saveRequest.landingPageDomain().trim()) ? Integer.valueOf(saveRequest.landingPageDomain()) : null,
-
                                         // saveRequest.landingPageDomain(),
                                         // saveRequest.landingPageDomain(),
                                         Objects.nonNull(saveRequest.transferPageDomain()) && !"".equals(saveRequest.transferPageDomain().trim()) ? Integer.valueOf(saveRequest.transferPageDomain()) : null,
                                         Objects.nonNull(saveRequest.transferPageDomain()) && !"".equals(saveRequest.transferPageDomain().trim()) ? Integer.valueOf(saveRequest.transferPageDomain()) : null,
 
 

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

@@ -180,57 +180,103 @@ public class PlanNewOutController {
     /**
     /**
      * 列表返回images(列表内容),shareQrurl(背景组) ,baiduDot,retAudio
      * 列表返回images(列表内容),shareQrurl(背景组) ,baiduDot,retAudio
      * Mono<RStatus<DataListsKefu>>
      * Mono<RStatus<DataListsKefu>>
+     *     //  return Mono.just(new Audio(null,null,null,null,null,null,null,null));
      */
      */
 
 
     @PostMapping("kefuList")
     @PostMapping("kefuList")
     public Mono<RStatus<DataListsKefu>> kefuList(@RequestBody KefuRequest request){
     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();
+                if (t3.size() < integer || t4.size() < integer) {
+                    throw new BaseException("图片或文字素材小于计划设置数");
+                }
+                ArrayList<Long> listImg = new ArrayList<>();
+                ArrayList<Long> listTxt = new ArrayList<>();
+                List<H5ImageAndText> h5ImageAndTexts = new ArrayList<>();
+                IntStream.range(0, integer).forEach(i -> {
+                    List<Image> collect = t3.stream().filter(fff -> !listImg.contains(fff.id())).collect(Collectors.toList());
+                    Image image1 = collect.get(RandomUtil.randomInt(0,collect.size()));
+                    listImg.add(image1.id());
+                    List<Material> collect1 = t4.stream().filter(fff -> !listTxt.contains(fff.id())).collect(Collectors.toList());
+                    Material material = collect1.get(RandomUtil.randomInt(0,collect1.size()));
+                    listTxt.add(material.id());
+                    //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 (第一个接口)
      * h5-通过code (第一个接口)
@@ -370,7 +416,7 @@ public class PlanNewOutController {
             Mono<DataLists> dataListsMono = Mono.zip(code, listAudio, retAudioId, returnLoop, arrayListMono, adtop, bottom, wx_user_id).flatMap(f -> {
             Mono<DataLists> dataListsMono = Mono.zip(code, listAudio, retAudioId, returnLoop, arrayListMono, adtop, bottom, wx_user_id).flatMap(f -> {
                 DataLists dataLists = new DataLists();
                 DataLists dataLists = new DataLists();
                 dataLists.setPlanNew(f.getT1());
                 dataLists.setPlanNew(f.getT1());
-
+                dataLists.setListButton(f.getT1().listButton());
                 if (Objects.nonNull(f.getT2().id())) {
                 if (Objects.nonNull(f.getT2().id())) {
                     dataLists.setListAudio(f.getT2());
                     dataLists.setListAudio(f.getT2());
                 }
                 }

+ 2 - 0
launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/planNew/res/DataLists.java

@@ -58,5 +58,7 @@ public class DataLists {
      */
      */
     private String backgroupDomain;//背景组域名
     private String backgroupDomain;//背景组域名
 
 
+    private String  listButton;
+
 
 
 }
 }

+ 3 - 1
launch-admin/src/main/java/com/webflux/launchadmin/mysql/entity/planNew/PlanNew.java

@@ -47,6 +47,8 @@ public record PlanNew(
         String landingPageDomain,//落地页域名
         String landingPageDomain,//落地页域名
         String transferPageDomain,//中转页域名
         String transferPageDomain,//中转页域名
         Integer transferPageBl, //中转页开关 1:true 0:F
         Integer transferPageBl, //中转页开关 1:true 0:F
-        String backgroupDomain//背景组域名
+        String backgroupDomain,//背景组域名
+        String listButton
+
 ) {
 ) {
 }
 }