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

交友-自定义二维码选择加群计划v0.01

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

+ 55 - 24
launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/planNew/PlanNewCommonOutController.java

@@ -708,7 +708,12 @@ public class PlanNewCommonOutController {
         // Mono<byte[]> res = resMono1.flatMap(f -> Mono.just(Objects.requireNonNull(this.compressData(JSONUtil.toJsonStr(f)))));
         return RStatus.successList(resMono1);
     }
-
+    private QrcodeInfo getQrcodeInfo(GoRequest goRequest)  {
+        Optional<Item> first = goRequest.getItem().stream().filter(ff -> "cover".equals(ff.getT()) ).findFirst();
+        Optional<Item> first3 = goRequest.getItem().stream().filter(ff -> "title".equals(ff.getT())).findFirst();
+        QrcodeInfo qrcodeInfo = new QrcodeInfo(null,first.isPresent()?first.get().getV():"",first3.isPresent()?first3.get().getV():"");
+        return qrcodeInfo;
+    }
     /**
      * 设置二维码 生成图片
      */
@@ -728,34 +733,60 @@ public class PlanNewCommonOutController {
                 PlanNewBackgroupPoster fxSetting = fm.getFxSetting();
                 goRequest = setNameVal(posterTemplate, fxSetting, fm.getSpare());
             }
-            String ret;
-            if (Objects.nonNull(goRequest)) {
-                ret = goGenerateService.goGenerate(JSONUtil.toJsonStr(goRequest));
-            } else {
-
-                ret = goGenerateService.goGenerate(posterTemplate);
+            QrcodeInfo stringBuilder = getQrcodeInfo(goRequest);
+            Mono<QrcodeInfo> qrcodeInfoMono=Mono.just(new QrcodeInfo(null,null,null));
+            List<Item> collect = goRequest.getItem()
+                    .stream()
+                    .filter(filter -> "cusqrcode".equals(filter.getT())
+                            && filter.getIsRandom()
+                            && 1 == filter.getType()).collect(Collectors.toList());
+            if (!collect.isEmpty()) {
+                 qrcodeInfoMono = template.insert(stringBuilder)
+                        .onErrorResume(throwable -> Mono.error(new BaseException("插入QrcodeInfo异常::::" + throwable.getMessage())));
             }
-            if (Objects.nonNull(ret)) {
-                JSONObject jsonObject1;
-                try {
-                    jsonObject1 = JSONUtil.parseObj(ret);
-                } catch (Exception e) {
-                    return Mono.error(new BaseException(e.getMessage() + "---" + JSONUtil.parseObj(goRequest) + " error:" + LogExceptionStackTrace.erroStackTrace(e).toString()));
-                }
-                if (jsonObject1.containsKey("code") && jsonObject1.get("code", Integer.class) == 0 && jsonObject1.containsKey("data")) {
-                    JSONObject data = jsonObject1.get("data", JSONObject.class);
-                    if (data.containsKey("Url")) {
-                        String url = data.get("Url", String.class);
-                        if (Objects.nonNull(request.getWx_user_id()) && !request.getWx_user_id().isEmpty() && 3 != fm.getPlanNew().type()) {
-                            fm.setQsGenerateImagesUrl(url);
-                        } else {
-                            fm.setFxGenerateImagesUrl(url);
+
+          return   Mono.zip(Mono.just(fm),qrcodeInfoMono).flatMap(fm1->{
+                if (Objects.nonNull(fm1.getT2().id())) {
+                    goRequest.getItem()
+                            .stream()
+                            .filter(filter -> "cusqrcode".equals(filter.getT())
+                                    && filter.getIsRandom()
+                                    && 1 == filter.getType()).collect(Collectors.toList()).forEach(fe -> {
+                        if (Objects.nonNull(fe.getV())) {
+                            if (fe.getV().contains("?")){
+                                String cusqrcode = fe.getV() + "&id=" + fm1.getT2().id();
+                                fe.setV(cusqrcode);
+                            }else{
+                                String cusqrcode = fe.getV() + "?id=" + fm1.getT2().id();
+                                fe.setV(cusqrcode);
+                            }
+
                         }
+                    });
+                }
+                String  ret = goGenerateService.goGenerate(JSONUtil.toJsonStr(goRequest));
+                if (Objects.nonNull(ret)) {
+                    JSONObject jsonObject1;
+                    try {
+                        jsonObject1 = JSONUtil.parseObj(ret);
+                    } catch (Exception e) {
+                        throw new BaseException(e.getMessage() + "---" + JSONUtil.parseObj(goRequest));
+                    }
+                    if (jsonObject1.containsKey("code") && jsonObject1.get("code", Integer.class) == 0 && jsonObject1.containsKey("data")) {
+                        JSONObject data = jsonObject1.get("data", JSONObject.class);
+                        if (data.containsKey("Url")) {
+                            String url = data.get("Url", String.class);
+                            if (Objects.nonNull(request.getWx_user_id()) && !request.getWx_user_id().isEmpty() && 3 != fm.getPlanNew().type()) {
+                                fm1.getT1().setQsGenerateImagesUrl(url);
+                            } else {
+                                fm1.getT1().setFxGenerateImagesUrl(url);
+                            }
 
+                        }
                     }
                 }
-            }
-            return Mono.just(fm);
+                return Mono.just(fm);
+            });
         });
         return resMono1;
     }

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

@@ -670,7 +670,7 @@ public class PlanNewOutController {
             }
             QrcodeInfo stringBuilder = getQrcodeInfo(goRequest);
             Mono<QrcodeInfo> qrcodeInfoMono = template.insert(stringBuilder)
-                    .onErrorResume(throwable -> Mono.error(new BaseException("插入QrcodeInfo异常::::" + throwable.getMessage())));;
+                    .onErrorResume(throwable -> Mono.error(new BaseException("插入QrcodeInfo异常::::" + throwable.getMessage())));
 //            if(Objects.nonNull(fm.getPlanNew().groupListDisplay()) && fm.getPlanNew().groupListDisplay()==1){
 //                qrcodeInfoMono = template.insert(stringBuilder)
 //                                .onErrorResume(throwable -> Mono.error(new BaseException("插入QrcodeInfo异常::::" + throwable.getMessage())));

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

@@ -599,7 +599,11 @@ public class GoGenerateService {
 //            }else{
 //                goRequest.getItem().stream().filter(fc->"cusqrcode".equals(fc.getT())).forEach(fe->fe.setName("客服二维码"));
 //            }
-            Optional<Item> first2 = goRequest.getItem().stream().filter(fc -> "cusqrcode".equals(fc.getT()) && (Objects.isNull(fc.getV()) || "".equals(fc.getV()))).findFirst();
+            Optional<Item> first2 = goRequest.getItem()
+                    .stream()
+                    .filter(fc -> "cusqrcode".equals(fc.getT())
+                            && (Objects.isNull(fc.getV())
+                            || "".equals(fc.getV()))).findFirst();
             if (first2.isPresent()) {
                 throw new BaseException("自定义二维码素材为空");
             }
@@ -752,8 +756,25 @@ public class GoGenerateService {
             Mono<QrcodeInfo> qrcodeInfoMono =template.insert(stringBuilder)
                     .switchIfEmpty(Mono.error(new BaseException("插入异常返回结果为空")))
                     .onErrorResume(throwable -> Mono.error(new BaseException("插入QrcodeInfo异常::::" + throwable.getMessage())));
+
+
           return Mono.zip(qrcodeInfoMono,Mono.just(goRequest)).flatMap(fff->{
-                GoRequest t21 = fff.getT2();
+              GoRequest t21 = fff.getT2();
+               t21.getItem()
+                      .stream()
+                      .filter(filter -> "cusqrcode".equals(filter.getT())
+                              && filter.getIsRandom()
+                              && 1==filter.getType()).forEach(fe -> {
+                   if (Objects.nonNull(fe.getV())) {
+                       if (fe.getV().contains("?")){
+                           String cusqrcode = fe.getV() + "&id=" + fff.getT1().id();
+                           fe.setV(cusqrcode);
+                       }else{
+                           String cusqrcode = fe.getV() + "?id=" + fff.getT1().id();
+                           fe.setV(cusqrcode);
+                       }
+                   }
+               });
                 t21.getItem().stream().filter(f1 -> "qrcode".equals(f1.getT())).forEach(fe->{
                     if (Objects.nonNull(fe.getV())) {
                         if (fe.getV().contains("?")){