Browse Source

plan-java v0.47

(cherry picked from commit 2a637f03ff19bccbe437840d19b482c7b8905fe2)
MOKASZ\lw12420 2 năm trước cách đây
mục cha
commit
ae0345b0f5

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

@@ -237,134 +237,83 @@ public class PlanNewOutController {
             map.put(request.getUnique(),0);
             request.setUserVisits(0);
         }
-        Mono<PlanNew> code = template.selectOne(Query.query(Criteria.where("code").is(request.getCode())), PlanNew.class);
-        //+二维码
-        Mono<StringBuilder> stringBuilderMono = code.flatMap(f -> goGenerateService.getStringBuilderMono(f.planNewId()));
-        Mono<PosterTemplate> poster_template = code.flatMap(plan -> template.selectOne(Query.query(Criteria.where("poster_template_id")
-                .is(plan.posterTemplateId())), PosterTemplate.class));
-        Mono<List<Poster>> Poster = code.flatMap(plan -> template.select(Query.query(Criteria.where("poster_template_id")
-                .is(plan.posterTemplateId())).sort(Sort.by(Sort.Order.desc("created_at"))), Poster.class).collectList());
-        Mono<List<PlanNewBackgroupPoster>> planNewBackgroupPoster = code.flatMap(plan -> template.select(Query.query(Criteria.where("plan_new_id")
-                .is(plan.planNewId())).sort(Sort.by(Sort.Order.asc("idx"))), PlanNewBackgroupPoster.class)
-                .collectList());
-
-        Mono<DataLists0> dataLists0Mono = Mono.zip(code, poster_template, Poster, planNewBackgroupPoster,stringBuilderMono).flatMap(f -> {
-            DataLists0 dataLists0 = new DataLists0();
-            dataLists0.setSpare(f.getT5().toString());
-            dataLists0.setPlanNew(f.getT1());
-            dataLists0.setPosterTemplate(f.getT2());
-            List<Poster> t3 = f.getT3();
-            if(t3.size()!=0){
-                if (t3.size() <= request.getUserVisits()) {
-                    dataLists0.setPoster(t3.getLast());
-                }else {
-                    dataLists0.setPoster(t3.get(request.getUserVisits()));
-                }
-            }
-            Map<Integer, List<PlanNewBackgroupPoster>> collect = f.getT4().stream().collect(Collectors.groupingBy(PlanNewBackgroupPoster::qsOrFx));
-            List<PlanNewBackgroupPoster> fx = collect.get(1).stream().sorted(Comparator.comparing(PlanNewBackgroupPoster::index)).collect(Collectors.toList());
-            if (Objects.nonNull(fx) &&fx.size() != 0) {
-                if (fx.size() <= request.getUserVisits()) {
-                    Integer userVisits = request.getUserVisits();
-                    int v =userVisits%fx.size();
-                    dataLists0.setFxSetting(fx.get(v));
-                    dataLists0.setLink(dataLists0.getPlanNew().link());
-                }else {
-                    dataLists0.setLink(null);
-                    dataLists0.setFxSetting(fx.get(request.getUserVisits()));
+        Mono<PlanNew> code0 = template.selectOne(Query.query(Criteria.where("code").is(request.getCode())), PlanNew.class);
+        Mono<DataLists0> dataLists0Mono =  code0.flatMap(ftmp->{
+            Mono<PlanNew> code = Mono.just(ftmp);
+            return  Mono.zip(code, getPoster_template_id(code), getPoster(code), getPlanNewBackgroupPoster(code),getEwm(request, code)).flatMap(f -> {
+                DataLists0 dataLists0 = new DataLists0();
+                dataLists0.setSpare(f.getT5().toString());
+                dataLists0.setPlanNew(f.getT1());
+                dataLists0.setPosterTemplate(f.getT2());
+                List<Poster> t3 = f.getT3();
+                if(t3.size()!=0){
+                    if (t3.size() <= request.getUserVisits()) {
+                        dataLists0.setPoster(t3.getLast());
+                    }else {
+                        dataLists0.setPoster(t3.get(request.getUserVisits()));
+                    }
                 }
-            }
-            List<PlanNewBackgroupPoster> qs = collect.get(2).stream().sorted(Comparator.comparing(PlanNewBackgroupPoster::index)).collect(Collectors.toList());
-            if(Objects.nonNull(qs) && !qs.isEmpty()){
-                if (qs.size() <= request.getUserVisits()) {
-                    Integer userVisits = request.getUserVisits();
-                    int v =userVisits%fx.size();
-                    dataLists0.setQsSetting(fx.get(v));
-                    //dataLists0.setQsSetting(qs.getLast());
+                Map<Integer, List<PlanNewBackgroupPoster>> collect = f.getT4().stream().collect(Collectors.groupingBy(PlanNewBackgroupPoster::qsOrFx));
+                //营销-清水
+                if (Objects.nonNull(request.getWx_user_id()) && !"".equals(request.getWx_user_id())) {
+                    List<PlanNewBackgroupPoster> qs = collect.get(2).stream().sorted(Comparator.comparing(PlanNewBackgroupPoster::index)).collect(Collectors.toList());
+                    if(Objects.nonNull(qs) && !qs.isEmpty()){
+                        if (qs.size() <= request.getUserVisits()) {
+                            Integer userVisits = request.getUserVisits();
+                            int v =userVisits%qs.size();
+                            dataLists0.setQsSetting(qs.get(v));
+                        }else {
+                            dataLists0.setQsSetting(qs.get(request.getUserVisits()));
+                        }
+                    }
+                    PlanNewBackgroupPoster qsSetting = dataLists0.getQsSetting();
+                    if(Objects.nonNull(qsSetting)){
+                        dataLists0.setLimitTime(qsSetting.limitTime());
+                        dataLists0.setLimitTimeRemark(qsSetting.limitTimeRemark());
+                    }
                 }else {
-                    dataLists0.setQsSetting(qs.get(request.getUserVisits()));
-                }
-            }
-            if (Objects.nonNull(request.getWx_user_id()) && !"".equals(request.getWx_user_id())) {
-                PlanNewBackgroupPoster qsSetting = dataLists0.getQsSetting();
-                if(Objects.nonNull(qsSetting)){
-                    dataLists0.setLimitTime(qsSetting.limitTime());
-                    dataLists0.setLimitTimeRemark(qsSetting.limitTimeRemark());
-                }
-            }else {
-                PlanNewBackgroupPoster fxSetting = dataLists0.getFxSetting();
-                if(Objects.nonNull(fxSetting)){
-                    dataLists0.setLimitTime(fxSetting.limitTime());
-                    dataLists0.setLimitTimeRemark(fxSetting.limitTimeRemark());
-                }
-            }
-            return Mono.just(dataLists0);
-        });
-        Mono<DataLists0> zip = dataLists0Mono.flatMap(f -> {
-            Mono<Audio> id = null;
-            if (Objects.nonNull(request.getWx_user_id()) && !"".equals(request.getWx_user_id())) {
-                PlanNewBackgroupPoster qsSetting = f.getQsSetting();
-                if (Objects.nonNull(qsSetting) && Objects.nonNull(qsSetting.audioId()) && 0 != qsSetting.audioId()) {
-                    id = template.selectOne(Query.query(Criteria.where("id").is(qsSetting.audioId())), Audio.class);
-                }
-            } else {
-                PlanNewBackgroupPoster fxSetting = f.getFxSetting();
-                if (Objects.nonNull(fxSetting) && Objects.nonNull(fxSetting.audioId()) && 0 != fxSetting.audioId()) {
-                    id = template.selectOne(Query.query(Criteria.where("id").is(fxSetting.audioId())), Audio.class);
+                    List<PlanNewBackgroupPoster> fx = collect.get(1).stream().sorted(Comparator.comparing(PlanNewBackgroupPoster::index)).collect(Collectors.toList());
+                    if (Objects.nonNull(fx) &&fx.size() != 0) {
+                        if (fx.size() <= request.getUserVisits()) {
+                            Integer userVisits = request.getUserVisits();
+                            int v =userVisits%fx.size();
+                            dataLists0.setFxSetting(fx.get(v));
+                            dataLists0.setLink(dataLists0.getPlanNew().link());
+                        }else {
+                            dataLists0.setLink(null);
+                            dataLists0.setFxSetting(fx.get(request.getUserVisits()));
+                        }
+                    }
+                    PlanNewBackgroupPoster fxSetting = dataLists0.getFxSetting();
+                    if(Objects.nonNull(fxSetting)){
+                        dataLists0.setLimitTime(fxSetting.limitTime());
+                        dataLists0.setLimitTimeRemark(fxSetting.limitTimeRemark());
+                    }
                 }
-            }
-            if (Objects.isNull(id)) {
-                id = template.selectOne(Query.query(Criteria.where("id").is(f.getPlanNew().retAudioId())), Audio.class);
-            }
-            return Mono.zip(Mono.just(f), id, (a, b) -> {
-                a.setAudio(b);
-                return a;
-            });
-
-        });
-        // 设置封面等
-        Mono<DataLists0> dataLists0Mono2 = zip.flatMap(fm -> {
-            Poster poster = fm.getPoster();
-            if (Objects.isNull(poster)) {
-                return Mono.just(fm);
-            }
-            String posterTemplate = poster.posterTemplate();
-            JSONObject jsonObject = JSONUtil.parseObj(posterTemplate);
-            GoRequest goRequest = new GoRequest();
-            BeanUtil.copyProperties(jsonObject, goRequest);
-            Mono<String> outTemPoster = goGenerateService.getOutTemPoster(goRequest, goGenerateService.getStringBuilderMono(goRequest));
-            Mono<DataLists0> zip1 = Mono.zip(Mono.just(fm), outTemPoster, (a, b) -> {
-                Poster poster1 = new Poster(poster.posterId(),
-                        poster.posterTemplateId(),
-                        b,
-                        poster.createUser(),
-                        poster.createId(),
-                        poster.createdAt(),
-                        poster.updatedAt(),
-                        poster.generateImagesJson(),
-                        poster.generateImagesUrl());
-                a.setPoster(poster1);
-                return a;
+                return Mono.just(dataLists0);
             });
-            return zip1;
         });
+
+        Mono<DataLists0> dataLists0Mono1 = setEndData(request, setFmV(request, setAudioV(request, dataLists0Mono)));
+        return RStatus.successList(dataLists0Mono1);
+    }
+//设置二维码 生成图片
+    private Mono<DataLists0> setEndData(HftRequest request, Mono<DataLists0> dataLists0Mono2) {
         Mono<DataLists0> dataLists0Mono1 = dataLists0Mono2.flatMap(fm -> {
             Poster poster = fm.getPoster();
             if (Objects.isNull(poster)) {
                 return Mono.just(fm);
             }
             String posterTemplate = poster.posterTemplate();
-            GoRequest goRequest = null;
+            GoRequest goRequest ;
             if (Objects.nonNull(request.getWx_user_id()) && !"".equals(request.getWx_user_id())) {
                 PlanNewBackgroupPoster qsSetting = fm.getQsSetting();
                 goRequest = setNameVal(posterTemplate, qsSetting,fm.getSpare());
             } else {
                 PlanNewBackgroupPoster fxSetting = fm.getFxSetting();
                 goRequest = setNameVal(posterTemplate, fxSetting,fm.getSpare());
-
             }
-
-            String ret = null;
+            String ret;
             if (Objects.nonNull(goRequest)) {
                 ret = goGenerateService.goGenerate(JSONUtil.toJsonStr(goRequest));
             } else {
@@ -372,7 +321,13 @@ public class PlanNewOutController {
                 ret = goGenerateService.goGenerate(posterTemplate);
             }
             if (Objects.nonNull(ret)) {
-                JSONObject jsonObject1 = JSONUtil.parseObj(ret);
+                JSONObject jsonObject1;
+                try {
+                     jsonObject1 =  JSONUtil.parseObj(ret);
+                }catch (Exception e){
+                    throw new BaseException(e.getMessage() +"---"+JSONUtil.parseObj(goRequest));
+                }
+                //JSONObject jsonObject1 = JSONUtil.parseObj(ret);
                 if (jsonObject1.containsKey("code") && jsonObject1.get("code", Integer.class) == 0 && jsonObject1.containsKey("data")) {
                     JSONObject data = jsonObject1.get("data", JSONObject.class);
                     if (data.containsKey("Url")) {
@@ -388,11 +343,111 @@ public class PlanNewOutController {
             }
             return Mono.just(fm);
         });
-        return RStatus.successList(dataLists0Mono1);
+        return dataLists0Mono1;
+    }
+
+    // 设置封面等
+    private Mono<DataLists0> setFmV(HftRequest request, Mono<DataLists0> zip) {
+        Mono<DataLists0> dataLists0Mono2 = zip.flatMap(fm -> {
+            Poster poster = fm.getPoster();
+            if (Objects.isNull(poster)) {
+                return Mono.just(fm);
+            }
+            String posterTemplate = poster.posterTemplate();
+            JSONObject jsonObject ;
+            try {
+                jsonObject = JSONUtil.parseObj(posterTemplate);
+            }catch (Exception e){
+                throw new BaseException(e.getMessage() +"---"+posterTemplate);
+            }
+            //JSONObject jsonObject = JSONUtil.parseObj(posterTemplate);
+            GoRequest goRequest = new GoRequest();
+            BeanUtil.copyProperties(jsonObject, goRequest);
+            Mono<String> outTemPoster;
+            if (Objects.nonNull(request.getWx_user_id()) && !"".equals(request.getWx_user_id())) {
+                outTemPoster = goGenerateService.getOutTemPosterQs(goRequest, goGenerateService.getStringBuilderMono(goRequest));
+            }else {
+                 outTemPoster = goGenerateService.getOutTemPosterYx(goRequest, goGenerateService.getStringBuilderMono(goRequest));
+            }
+            return Mono.zip(Mono.just(fm), outTemPoster, (a, b) -> {
+                Poster poster1 = new Poster(poster.posterId(),
+                        poster.posterTemplateId(),
+                        b,
+                        poster.createUser(),
+                        poster.createId(),
+                        poster.createdAt(),
+                        poster.updatedAt(),
+                        poster.generateImagesJson(),
+                        poster.generateImagesUrl());
+                a.setPoster(poster1);
+                return a;
+            });
+        });
+        return dataLists0Mono2;
     }
 
+    //音频
+    private Mono<DataLists0> setAudioV(HftRequest request, Mono<DataLists0> dataLists0Mono) {
+        Mono<DataLists0> zip = dataLists0Mono.flatMap(f -> {
+            Mono<Audio> id = null;
+            if (Objects.nonNull(request.getWx_user_id()) && !"".equals(request.getWx_user_id())) {
+                PlanNewBackgroupPoster qsSetting = f.getQsSetting();
+                if (Objects.nonNull(qsSetting) && Objects.nonNull(qsSetting.audioId()) && 0 != qsSetting.audioId()) {
+                    id = template.selectOne(Query.query(Criteria.where("id").is(qsSetting.audioId())), Audio.class);
+                }
+            } else {
+                PlanNewBackgroupPoster fxSetting = f.getFxSetting();
+                if (Objects.nonNull(fxSetting) && Objects.nonNull(fxSetting.audioId()) && 0 != fxSetting.audioId()) {
+                    id = template.selectOne(Query.query(Criteria.where("id").is(fxSetting.audioId())), Audio.class);
+                }
+            }
+            if (Objects.isNull(id)) {
+               // id = template.selectOne(Query.query(Criteria.where("id").is(f.getPlanNew().retAudioId())), Audio.class);
+                return Mono.just(f);
+            }
+            return Mono.zip(Mono.just(f), id, (a, b) -> {
+                a.setAudio(b);
+                return a;
+            });
+        });
+        return zip;
+    }
+
+    // //+二维码
+    private Mono<StringBuilder> getEwm(HftRequest request, Mono<PlanNew> code) {
+        Mono<StringBuilder> stringBuilderMono ;
+        if (Objects.nonNull(request.getWx_user_id()) && !"".equals(request.getWx_user_id())) {
+            stringBuilderMono = goGenerateService.getStringBuilderMonoQs(code);
+        }else{
+            stringBuilderMono =  goGenerateService.getStringBuilderMonoYx(code);
+        }
+        return stringBuilderMono;
+    }
+
+    private Mono<List<PlanNewBackgroupPoster>> getPlanNewBackgroupPoster(Mono<PlanNew> code) {
+        return code.flatMap(plan -> template.select(Query.query(Criteria.where("plan_new_id")
+                .is(plan.planNewId())).sort(Sort.by(Sort.Order.asc("idx"))), PlanNewBackgroupPoster.class)
+                .collectList());
+    }
+
+    private Mono<List<Poster>> getPoster(Mono<PlanNew> code) {
+        return code.flatMap(plan -> template.select(Query.query(Criteria.where("poster_template_id")
+                .is(plan.posterTemplateId())).sort(Sort.by(Sort.Order.desc("created_at"))), Poster.class).collectList());
+    }
+
+    private Mono<PosterTemplate> getPoster_template_id(Mono<PlanNew> code) {
+        return code.flatMap(plan -> template.selectOne(Query.query(Criteria.where("poster_template_id")
+                .is(plan.posterTemplateId())), PosterTemplate.class));
+    }
+//qrcode 二维码设置
     private GoRequest setNameVal(String posterTemplate, PlanNewBackgroupPoster qsSetting,String spare) {
-        JSONObject jsonObject = JSONUtil.parseObj(posterTemplate);
+        JSONObject jsonObject ;
+        try {
+             jsonObject =  JSONUtil.parseObj(posterTemplate);
+        }catch (Exception e){
+            throw new BaseException(e.getMessage() +"---"+posterTemplate);
+        }
+        //JSONObject jsonObject = JSONUtil.parseObj(posterTemplate);
         GoRequest goRequest = new GoRequest();
         BeanUtil.copyProperties(jsonObject,goRequest);
         if(Objects.nonNull(qsSetting)){
@@ -408,6 +463,7 @@ public class PlanNewOutController {
                         if (!jsonArray.isEmpty()) {
                             String s = jsonArray.get(0, String.class);
                             item.setV(s);
+                            item.setName("客服二维码");
                             return goRequest;
                         }
                     }

+ 91 - 35
launch-admin/src/main/java/com/webflux/launchadmin/mysql/service/planNew/goGenerate/GoGenerateService.java

@@ -57,8 +57,16 @@ public class GoGenerateService {
 //        GoRequest goRequest = new GoRequest();
 //        BeanUtil.copyProperties(jsonObject,goRequest);
 //        JSONObject jsonObject1 = JSONUtil.parseObj(goRequest);
-        String body = HttpUtil.post(value + "/api/image/createImage",temStr,100000);
-        return body;
+        String body="";
+        try {
+            //JSONObject jsonObject = JSONUtil.parseObj(temStr);
+            body = HttpUtil.post(value + "/api/image/createImage",temStr,100000);
+           // JSONUtil.parseObj(body);
+            return body;
+        } catch (Exception e) {
+            // System.out.println(e);
+            throw new BaseException(e.getMessage()+"body:::"+body+":::request:::"+temStr);
+        }
 
     }
     public String goGenerateStr(String temStr){
@@ -125,43 +133,80 @@ public class GoGenerateService {
         return template.select(Query.query(Criteria.where("type").is(2)), Image.class).collectList();
     }
 
+
     /**
      * H5 第二个接口 自动生成图片
      * @param goRequest
      * @param stringBuilderMono
      * @return
      */
-    public Mono<String> getOutTemPoster(GoRequest goRequest,Mono<List<StringBuilder>> stringBuilderMono){
-     return    getStringMonoOut(goRequest, stringBuilderMono, getBgImage(), getFmImageLists0(), getTextLists(),getImageType1());
+    public Mono<String> getOutTemPosterYx(GoRequest goRequest,Mono<List<StringBuilder>> stringBuilderMono){
+     return    getStringMonoOut(goRequest, stringBuilderMono, getBgImageYx(), getFmImageListsYx(), getTextListsYx(),getImageTypeYx());
+    }
+
+    public Mono<String> getOutTemPosterQs(GoRequest goRequest,Mono<List<StringBuilder>> stringBuilderMono){
+        return    getStringMonoOut(goRequest, stringBuilderMono, getBgImageQs(), getFmImageListsQs(), getTextListsQs(),getImageTypeQs());
+    }
+    private Mono<List<Image>> getBgImageQs() {
+        return template.select(Query.query(Criteria.where("type").is(2).and("group_type").is(2)), Image.class).collectList();
+    }
+
+    private Mono<List<Image>> getFmImageListsQs() {
+        return template.select(Query.query(Criteria.where("type").is(10).and("group_type").is(2)), Image.class).collectList();
+    }
+
+    private Mono<List<Material>> getTextListsQs() {
+        return template.select(Query.query(Criteria.where("type").is(14).and("group_type").is(2)), Material.class).collectList();
+    }
+    private Mono<List<Image>> getImageTypeQs(){
+        return template.select(Query.query(Criteria.where("type").is(1).and("group_type").is(2)), Image.class).collectList();
+    }
+
+
+    private Mono<List<Material>> getTextListsYx() {
+        return template.select(Query.query(Criteria.where("type").is(14).and("group_type").is(1)), Material.class).collectList();
+    }
+    private Mono<List<Image>> getBgImageYx() {
+        return template.select(Query.query(Criteria.where("type").is(2).and("group_type").is(1)), Image.class).collectList();
+    }
+    private Mono<List<Image>> getFmImageListsYx() {
+        return template.select(Query.query(Criteria.where("type").is(10).and("group_type").is(1)), Image.class).collectList();
+    }
+    private Mono<List<Image>> getImageTypeYx(){
+        return template.select(Query.query(Criteria.where("type").is(1).and("group_type").is(1)), Image.class).collectList();
     }
 
+
+
     public Mono<String> getStringMonoOut(GoRequest goRequest, Mono<List<StringBuilder>> stringBuilderMono,
                                       Mono<List<Image>> bgImage, Mono<List<Image>> fmImage, Mono<List<Material>> text,Mono<List<Image>> fm1) {
 
         Mono<String> stringMono = Mono.zip(bgImage, fmImage, text, stringBuilderMono,fm1).flatMap(f -> {
             List<StringBuilder> t4 = f.getT4();
-
-            // System.out.println(t4);
             Optional<Image> first = f.getT1().stream().findFirst();
-            //first.ifPresent(image -> goRequest.setBg_img_src(image.image()));
             if (goRequest.getIsRandom()) {
                 first.ifPresent(image -> goRequest.setBg_img_src(image.image()));
             }
             goRequest.getItem().stream().filter(fc->"cusqrcode".equals(fc.getT())).forEach(fe->fe.setName("H5二维码"));
             //封面
-            goRequest.getItem().stream().filter(ff -> "cover".equals(ff.getT()) && ff.getIsRandom()).findFirst()
-                    .ifPresent(item -> item.setV(f.getT5().get(RandomUtil.randomInt(0, f.getT5().size())).image()));
-
+            if( Objects.nonNull(f.getT3()) &&!f.getT3().isEmpty()){
+                goRequest.getItem().stream().filter(ff -> "cover".equals(ff.getT()) && ff.getIsRandom()).findFirst()
+                        .ifPresent(item -> item.setV(f.getT5().get(RandomUtil.randomInt(0, f.getT5().size())).image()));
+            }
             //图片
-            Optional.ofNullable(f.getT2().get(RandomUtil.randomInt(0, f.getT2().size()))).ifPresent(image -> goRequest.getItem().stream()
-                    .filter(ff -> "image".equals(ff.getT()) && ff.getIsRandom() )
-                    .findFirst()
-                    .ifPresent(item -> item.setV(image.image())));
+            if( Objects.nonNull(f.getT2()) &&!f.getT2().isEmpty()){
+                Optional.ofNullable(f.getT2().get(RandomUtil.randomInt(0, f.getT2().size()))).ifPresent(image -> goRequest.getItem().stream()
+                        .filter(ff -> "image".equals(ff.getT()) && ff.getIsRandom() )
+                        .findFirst()
+                        .ifPresent(item -> item.setV(image.image())));
+            }
             //文本
-            Optional.ofNullable(f.getT3().get(RandomUtil.randomInt(0,f.getT3().size()))).ifPresent(material -> goRequest.getItem().stream()
-                    .filter(ff -> "text".equals(ff.getT()) && ff.getIsRandom())
-                    .findFirst()
-                    .ifPresent(item -> item.setV(material.content())));
+            if( Objects.nonNull(f.getT3()) &&!f.getT3().isEmpty()){
+                Optional.ofNullable(f.getT3().get(RandomUtil.randomInt(0,f.getT3().size()))).ifPresent(material -> goRequest.getItem().stream()
+                        .filter(ff -> "text".equals(ff.getT()) && ff.getIsRandom())
+                        .findFirst()
+                        .ifPresent(item -> item.setV(material.content())));
+            }
             String s1 = JSONUtil.toJsonStr(goRequest);
            // String s = goGenerateStr(s1);
             return Mono.just(s1);
@@ -261,9 +306,7 @@ public class GoGenerateService {
                     .collectList()
                     .switchIfEmpty(Mono.just(List.of())).flatMap(b->{
                 StringBuilder stringBuilder = new StringBuilder();
-                if (Objects.isNull(b) || b.isEmpty()) {
-                    stringBuilder.append("生成计划链接 匹配域名为空");
-                } else {
+                if (Objects.nonNull(b) || !b.isEmpty()) {
                     DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
                     stringBuilder.append("http://");
                     stringBuilder.append(get6Str());
@@ -283,9 +326,7 @@ public class GoGenerateService {
                                     .collectList()
                                     .switchIfEmpty(Mono.just(List.of())), (a, b) -> {
                                 StringBuilder stringBuilder = new StringBuilder();
-                                if (Objects.isNull(b) || b.isEmpty()) {
-                                    stringBuilder.append("生成计划链接 匹配域名为空");
-                                } else {
+                                if (Objects.nonNull(b) || !b.isEmpty()) {
                                     DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
                                     stringBuilder.append("http://");
                                     stringBuilder.append(get6Str());
@@ -303,16 +344,34 @@ public class GoGenerateService {
         }
 
     }
-    public Mono<StringBuilder> getStringBuilderMono(Long planNewId) {
-        Mono<StringBuilder> stringBuilderMono1 = template.selectOne(Query.query(Criteria.where("plan_new_id").is(planNewId)), PlanNew.class)
-                .flatMap(f9 -> Mono.zip(Mono.just(f9), template.select(Query.query(Criteria.where("group_type_id").is(f9.groupId())
-                                .and("status").is(1).and("type").is(1)), DomainSelect.class)
+    public Mono<StringBuilder> getStringBuilderMonoQs( Mono<PlanNew> code) {
+        return code.flatMap(f9 -> Mono.zip(code, template.select(Query.query(Criteria.where("group_type_id").is(f9.groupIdQs())
+                                .and("status").is(1).and("type").is(1).and("group_type").is(2)), DomainSelect.class)
+                                .collectList()
+                                .switchIfEmpty(Mono.just(List.of())), (a, b) -> {
+                            StringBuilder stringBuilder = new StringBuilder();
+                            if (Objects.nonNull(b) || !b.isEmpty()) {
+                                DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
+                                stringBuilder.append("http://");
+                                stringBuilder.append(get6Str());
+                                stringBuilder.append(".");
+                                stringBuilder.append(domainSelect.domain());
+                                stringBuilder.append("/index.html?code=");
+                                stringBuilder.append(a.code());
+                                stringBuilder.append("&sk=");
+                                stringBuilder.append(IdUtil.fastSimpleUUID());
+                            }
+                            return stringBuilder;
+                        })
+                );
+    }
+    public Mono<StringBuilder> getStringBuilderMonoYx( Mono<PlanNew> code) {
+        return code.flatMap(f9 -> Mono.zip(code, template.select(Query.query(Criteria.where("group_type_id").is(f9.groupId())
+                                .and("status").is(1).and("type").is(1).and("group_type").is(1)), DomainSelect.class)
                                 .collectList()
                                 .switchIfEmpty(Mono.just(List.of())), (a, b) -> {
                             StringBuilder stringBuilder = new StringBuilder();
-                            if (Objects.isNull(b) || b.isEmpty()) {
-                                stringBuilder.append("生成计划链接 匹配域名为空");
-                            } else {
+                            if (Objects.nonNull(b) || !b.isEmpty()) {
                                 DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
                                 stringBuilder.append("http://");
                                 stringBuilder.append(get6Str());
@@ -326,7 +385,6 @@ public class GoGenerateService {
                             return stringBuilder;
                         })
                 );
-        return stringBuilderMono1;
     }
 
 
@@ -373,9 +431,7 @@ public class GoGenerateService {
                                     .collectList()
                                     .switchIfEmpty(Mono.just(List.of())), (a, b) -> {
                                 StringBuilder stringBuilder = new StringBuilder();
-                                if (Objects.isNull(b) || b.isEmpty()) {
-                                    stringBuilder.append("生成计划链接 匹配域名为空");
-                                } else {
+                                if (Objects.nonNull(b) || !b.isEmpty()) {
                                     DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
                                     stringBuilder.append("http://");
                                     stringBuilder.append( get6Str());