Procházet zdrojové kódy

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

volta před 1 rokem
rodič
revize
71cd59c281
28 změnil soubory, kde provedl 475 přidání a 124 odebrání
  1. 3 1
      launch-admin/pom.xml
  2. 34 0
      launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/planNew/AlbumOutController.java
  3. 39 19
      launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/planNew/PlanNewCommonController.java
  4. 123 31
      launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/planNew/PlanNewCommonOutController.java
  5. 11 5
      launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/planNew/PlanNewController.java
  6. 47 9
      launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/planNew/PlanNewOutController.java
  7. 5 1
      launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/planNew/req/PlanNewCommonMaterialReq.java
  8. 2 0
      launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/planNew/req/PlanReq.java
  9. 10 0
      launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/planNew/res/AlbumDataRes.java
  10. 20 0
      launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/planNew/res/DuanjuMaterialRes.java
  11. 2 0
      launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/planNew/res/PlanNewAllRs.java
  12. 11 1
      launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/planNew/res/PlanNewCommonMaterialRes.java
  13. 1 1
      launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/sourceMaterial/AlbumController.java
  14. 24 0
      launch-admin/src/main/java/com/webflux/launchadmin/mysql/entity/planNew/DuanjuMaterial.java
  15. 2 1
      launch-admin/src/main/java/com/webflux/launchadmin/mysql/entity/planNew/PlanNew.java
  16. 8 7
      launch-admin/src/main/java/com/webflux/launchadmin/mysql/service/listening/ListeningPlanServiceImpl.java
  17. 21 10
      launch-admin/src/main/java/com/webflux/launchadmin/mysql/service/otherServices/OtherServicesImpl.java
  18. 9 4
      launch-admin/src/main/java/com/webflux/launchadmin/mysql/service/planNew/PlanServiceImpl.java
  19. 29 14
      launch-admin/src/main/java/com/webflux/launchadmin/mysql/service/planNew/goGenerate/GoGenerateService.java
  20. 6 6
      launch-admin/src/main/java/com/webflux/launchadmin/mysql/service/readBookPlan/ReadBookPlanServicesImpl.java
  21. 35 6
      launch-admin/src/main/java/com/webflux/launchadmin/mysql/service/sourceMaterial/materialManagement/MaterialManagementImpl.java
  22. 3 0
      launch-admin/src/main/java/com/webflux/launchadmin/mysql/service/sourceMaterial/materialManagement/MaterialManagementInterface.java
  23. 2 2
      launch-admin/src/main/java/com/webflux/launchadmin/mysql/service/sourceMaterial/materialManagement/redisCache/AlbumItemService.java
  24. 1 1
      launch-admin/src/main/java/com/webflux/launchadmin/mysql/service/sourceMaterial/materialManagement/redisCache/AlbumService.java
  25. 2 2
      launch-admin/src/main/java/com/webflux/launchadmin/mysql/service/sourceMaterial/materialManagement/redisCache/BackgroupImageItemService.java
  26. 2 2
      launch-admin/src/main/java/com/webflux/launchadmin/mysql/service/sourceMaterial/materialManagement/redisCache/BackgroupImageService.java
  27. 1 1
      launch-admin/src/main/java/com/webflux/launchadmin/mysql/service/sourceMaterial/materialManagement/redisCache/interfacelist/AlbumItemInterface.java
  28. 22 0
      launch-admin/src/main/java/com/webflux/launchadmin/utils/RandomStr.java

+ 3 - 1
launch-admin/pom.xml

@@ -199,11 +199,13 @@
                     </execution>
                     </execution>
                 </executions>
                 </executions>
             </plugin>
             </plugin>
+            
             <plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
                 <artifactId>maven-compiler-plugin</artifactId>
-                <version>3.5.1</version>
+                <version>3.8.1</version>
                 <configuration>
                 <configuration>
+                    <parameters>true</parameters>
                     <source>21</source>
                     <source>21</source>
                     <target>21</target>
                     <target>21</target>
                 </configuration>
                 </configuration>

+ 34 - 0
launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/planNew/AlbumOutController.java

@@ -0,0 +1,34 @@
+package com.webflux.launchadmin.mysql.controller.planNew;
+
+import com.webflux.launchadmin.mysql.controller.planNew.res.AlbumDataRes;
+import com.webflux.launchadmin.mysql.service.sourceMaterial.materialManagement.MaterialManagementInterface;
+import com.webflux.launchcommon.returnObj.RStatus;
+import jakarta.annotation.Resource;
+import jakarta.validation.constraints.NotNull;
+import org.springframework.web.bind.annotation.*;
+import reactor.core.publisher.Mono;
+
+/**
+ * 相册对外接口
+ * @author lw12420
+ * @date 2024/08/12
+ */
+@RestController
+@RequestMapping("out/album")
+public class AlbumOutController {
+
+    @Resource
+    private MaterialManagementInterface sourceMaterialInterface;
+
+
+    /**
+     * 相册根据id获取信息
+     * @param id
+     * @return {@link Mono}<{@link RStatus}<{@link AlbumDataRes}>>
+     */
+    @GetMapping("info/{id}")
+    public Mono<RStatus<AlbumDataRes>> infoOut(@PathVariable("id") @NotNull Long[] id){
+        Mono<AlbumDataRes> mono= sourceMaterialInterface.infoOut(id);
+        return RStatus.success(mono);
+    }
+}

+ 39 - 19
launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/planNew/PlanNewCommonController.java

@@ -76,7 +76,12 @@ public class PlanNewCommonController {
         String userName = BaseContextHandler.getUserName();
         String userName = BaseContextHandler.getUserName();
         String userId = BaseContextHandler.getUserId();
         String userId = BaseContextHandler.getUserId();
         saveRequest.setCode(IdUtil.fastSimpleUUID());
         saveRequest.setCode(IdUtil.fastSimpleUUID());
-        Mono<String> previewUrl = this.getPreviewUrl(saveRequest);
+        Mono<String> previewUrl;
+        if (saveRequest.getType() == 8) {//复粉
+             previewUrl = Mono.just("");
+        }else {
+             previewUrl = this.getPreviewUrl(saveRequest);
+        }
         Mono<PlanNewCommon> insert = previewUrl.flatMap(f -> {
         Mono<PlanNewCommon> insert = previewUrl.flatMap(f -> {
             PlanNewCommon plan = new PlanNewCommon(
             PlanNewCommon plan = new PlanNewCommon(
                     IdUtil.fastSimpleUUID(),
                     IdUtil.fastSimpleUUID(),
@@ -97,14 +102,18 @@ public class PlanNewCommonController {
             );
             );
             return template.insert(plan);
             return template.insert(plan);
         });
         });
-        Mono<String> map = insert.flatMap(f -> {
-            Flux<PlanNewBackgroupPoster> just = this.getPlanNewBackGroupPosterFlux(saveRequest, f);
-            return Mono.zip(this.batchInsert(just), Mono.just(f)).flatMap(ff -> {
-                PlanNewCommon t2 = ff.getT2();
-                return Mono.just(t2.id());
+        if(saveRequest.getType()==8){
+            return  RStatus.success(insert.then(Mono.just("")));
+        }else {
+            Mono<String> map = insert.flatMap(f -> {
+                Flux<PlanNewBackgroupPoster> just = this.getPlanNewBackGroupPosterFlux(saveRequest, f);
+                return Mono.zip(this.batchInsert(just), Mono.just(f)).flatMap(ff -> {
+                    PlanNewCommon t2 = ff.getT2();
+                    return Mono.just(t2.id());
+                });
             });
             });
-        });
-        return RStatus.success(map);
+            return RStatus.success(map);
+        }
     }
     }
 
 
     /**
     /**
@@ -114,7 +123,12 @@ public class PlanNewCommonController {
         String userName = BaseContextHandler.getUserName();
         String userName = BaseContextHandler.getUserName();
         String userId = BaseContextHandler.getUserId();
         String userId = BaseContextHandler.getUserId();
         Mono<PlanNewCommon> planNewCommonMono = template.selectOne(Query.query(Criteria.where("id").is(updateRequest.getPlanNewId())), PlanNewCommon.class);
         Mono<PlanNewCommon> planNewCommonMono = template.selectOne(Query.query(Criteria.where("id").is(updateRequest.getPlanNewId())), PlanNewCommon.class);
-        Mono<String> previewUrl = this.getPreviewUrl(updateRequest);
+        Mono<String> previewUrl ;//= this.getPreviewUrl(updateRequest);
+        if (updateRequest.getType() == 8) {//复粉
+            previewUrl = Mono.just("");
+        }else {
+            previewUrl = this.getPreviewUrl(updateRequest);
+        }
         Mono<PlanNewCommon> updateMono = Mono.zip(previewUrl, planNewCommonMono).flatMap(f -> {
         Mono<PlanNewCommon> updateMono = Mono.zip(previewUrl, planNewCommonMono).flatMap(f -> {
             PlanNewCommon old = f.getT2();
             PlanNewCommon old = f.getT2();
             PlanNewCommon plan = new PlanNewCommon(
             PlanNewCommon plan = new PlanNewCommon(
@@ -136,17 +150,23 @@ public class PlanNewCommonController {
             );
             );
             return Mono.just(plan);
             return Mono.just(plan);
         }).flatMap(template::update);
         }).flatMap(template::update);
-        Mono<String> map = updateMono.flatMap(f1 -> {
-            Mono<Long> ml = template.delete(Query.query(Criteria.where("plan_new_id").is(f1.id())), PlanNewBackgroupPoster.class);
-            return Mono.zip(Mono.just(f1), ml).flatMap(ff -> Mono.just(f1));
-        }).flatMap(f -> {
-            Flux<PlanNewBackgroupPoster> just = this.getPlanNewBackGroupPosterFlux(updateRequest, f);
-            return Mono.zip(this.batchInsert(just), Mono.just(f)).flatMap(ff -> {
-                PlanNewCommon t2 = ff.getT2();
-                return Mono.just(t2.id());
+        if(updateRequest.getType()==8){
+            return RStatus.success(updateMono.then(Mono.just("")));
+        }else {
+            Mono<String> map = updateMono.flatMap(f1 -> {
+                Mono<Long> ml = template.delete(Query.query(Criteria.where("plan_new_id").is(f1.id())), PlanNewBackgroupPoster.class);
+                return Mono.zip(Mono.just(f1), ml).flatMap(ff -> Mono.just(f1));
+            }).flatMap(f -> {
+                Flux<PlanNewBackgroupPoster> just = this.getPlanNewBackGroupPosterFlux(updateRequest, f);
+                return Mono.zip(this.batchInsert(just), Mono.just(f)).flatMap(ff -> {
+                    PlanNewCommon t2 = ff.getT2();
+                    return Mono.just(t2.id());
+                });
             });
             });
-        });
-        return RStatus.success(map);
+            return RStatus.success(map);
+        }
+
+
     }
     }
 
 
     /**
     /**

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

@@ -27,6 +27,7 @@ import com.webflux.launchadmin.mysql.service.planNew.structure.Item;
 import com.webflux.launchadmin.mysql.service.readBookPlan.ReadBookPlanServicesInterface;
 import com.webflux.launchadmin.mysql.service.readBookPlan.ReadBookPlanServicesInterface;
 import com.webflux.launchadmin.mysql.service.sourceMaterial.materialManagement.MaterialManagementInterface;
 import com.webflux.launchadmin.mysql.service.sourceMaterial.materialManagement.MaterialManagementInterface;
 import com.webflux.launchadmin.mysql.service.takeaway.TakeawayServicesInterface;
 import com.webflux.launchadmin.mysql.service.takeaway.TakeawayServicesInterface;
+import com.webflux.launchadmin.utils.RandomStr;
 import com.webflux.launchcommon.returnObj.RStatus;
 import com.webflux.launchcommon.returnObj.RStatus;
 import com.webflux.launchcommon.utils.StringUtils;
 import com.webflux.launchcommon.utils.StringUtils;
 import jakarta.annotation.Resource;
 import jakarta.annotation.Resource;
@@ -496,8 +497,11 @@ public class PlanNewCommonOutController {
             return this.getFriendPlan(request);
             return this.getFriendPlan(request);
         } else if (4 == request.getTypePlan()) {
         } else if (4 == request.getTypePlan()) {
             return this.getTakeaway(request);
             return this.getTakeaway(request);
+        }else{
+            // 交友裂变
+            return this.getFriendPlan(request);
         }
         }
-        throw new BaseException("typePlan 类型错误");
+       // throw new BaseException("typePlan 类型错误");
     }
     }
 
 
     /**
     /**
@@ -520,7 +524,7 @@ public class PlanNewCommonOutController {
                         .onErrorResume(throwable -> Mono.error(new BaseException("transferPageDomain 域名查詢為空 group_type_id:::" + f.transferPageDomain()))).collectList().flatMap(fff -> {
                         .onErrorResume(throwable -> Mono.error(new BaseException("transferPageDomain 域名查詢為空 group_type_id:::" + f.transferPageDomain()))).collectList().flatMap(fff -> {
                             if (!fff.isEmpty()) {
                             if (!fff.isEmpty()) {
                                 DomainSelect domainSelect = fff.get(RandomUtil.randomInt(0, fff.size()));
                                 DomainSelect domainSelect = fff.get(RandomUtil.randomInt(0, fff.size()));
-                                String string = RandomUtil.randomString("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 6);
+                                String string = RandomStr.getRandomStr(request.getCode());
                                 String domain1 = domainSelect.domain();
                                 String domain1 = domainSelect.domain();
                                 return Mono.just(string + "." + domain1);
                                 return Mono.just(string + "." + domain1);
 
 
@@ -542,7 +546,7 @@ public class PlanNewCommonOutController {
                         .onErrorResume(throwable -> Mono.error(new BaseException("backgroupDomain 域名查询为空 group_type_id" + f.backgroupDomain()))).collectList().flatMap(fff -> {
                         .onErrorResume(throwable -> Mono.error(new BaseException("backgroupDomain 域名查询为空 group_type_id" + f.backgroupDomain()))).collectList().flatMap(fff -> {
                             if (!fff.isEmpty()) {
                             if (!fff.isEmpty()) {
                                 DomainSelect domainSelect = fff.get(RandomUtil.randomInt(0, fff.size()));
                                 DomainSelect domainSelect = fff.get(RandomUtil.randomInt(0, fff.size()));
-                                String string = RandomUtil.randomString("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 6);
+                                String string = RandomStr.getRandomStr(request.getCode());
                                 String domain1 = domainSelect.domain();
                                 String domain1 = domainSelect.domain();
                                 return Mono.just(string + "." + domain1);
                                 return Mono.just(string + "." + domain1);
                             } else {
                             } else {
@@ -562,7 +566,7 @@ public class PlanNewCommonOutController {
                         //  DomainSelectRes domainSelectRes = new DomainSelectRes();
                         //  DomainSelectRes domainSelectRes = new DomainSelectRes();
                         int i = RandomUtil.randomInt(0, fm.size());
                         int i = RandomUtil.randomInt(0, fm.size());
                         String domain = fm.get(i).domain();
                         String domain = fm.get(i).domain();
-                        String string = RandomUtil.randomString("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 6);
+                        String string = RandomStr.getRandomStr(request.getCode());
                         return Mono.just(string + "." + domain);
                         return Mono.just(string + "." + domain);
                     });
                     });
             return Mono.zip(stringMono2, stringMono1, stringMono).flatMap(fff -> {
             return Mono.zip(stringMono2, stringMono1, stringMono).flatMap(fff -> {
@@ -597,7 +601,7 @@ public class PlanNewCommonOutController {
                     DomainSelectRes domainSelectRes = new DomainSelectRes();
                     DomainSelectRes domainSelectRes = new DomainSelectRes();
                     int i = RandomUtil.randomInt(0, fm.size());
                     int i = RandomUtil.randomInt(0, fm.size());
                     String domain = fm.get(i).domain();
                     String domain = fm.get(i).domain();
-                    String string = RandomUtil.randomString("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 6);
+                    String string = RandomStr.getRandomStr(request.getCode());
                     domainSelectRes.setDomain(string + "." + domain);
                     domainSelectRes.setDomain(string + "." + domain);
                     domainSelectRes.setPath("");
                     domainSelectRes.setPath("");
                     domainSelectRes.setUnique(IdUtil.fastSimpleUUID());
                     domainSelectRes.setUnique(IdUtil.fastSimpleUUID());
@@ -624,7 +628,7 @@ public class PlanNewCommonOutController {
                     .collectList().flatMap(fm -> {
                     .collectList().flatMap(fm -> {
                         int i = RandomUtil.randomInt(0, fm.size());
                         int i = RandomUtil.randomInt(0, fm.size());
                         String domain = fm.get(i).domain();
                         String domain = fm.get(i).domain();
-                        String string = RandomUtil.randomString("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 6);
+                        String string = RandomStr.getRandomStr(request.getCode());
                         return Mono.just(string + "." + domain);
                         return Mono.just(string + "." + domain);
                     });
                     });
         }
         }
@@ -639,7 +643,7 @@ public class PlanNewCommonOutController {
                     .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage()))).collectList().flatMap(fff -> {
                     .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage()))).collectList().flatMap(fff -> {
                         if (!fff.isEmpty()) {
                         if (!fff.isEmpty()) {
                             DomainSelect domainSelect = fff.get(RandomUtil.randomInt(0, fff.size()));
                             DomainSelect domainSelect = fff.get(RandomUtil.randomInt(0, fff.size()));
-                            String string = RandomUtil.randomString("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 6);
+                            String string = RandomStr.getRandomStr(request.getCode());
                             String domain1 = domainSelect.domain();
                             String domain1 = domainSelect.domain();
                             return Mono.just(string + "." + domain1);
                             return Mono.just(string + "." + domain1);
                         } else {
                         } else {
@@ -660,7 +664,7 @@ public class PlanNewCommonOutController {
                     .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage()))).collectList().flatMap(fff -> {
                     .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage()))).collectList().flatMap(fff -> {
                         if (!fff.isEmpty()) {
                         if (!fff.isEmpty()) {
                             DomainSelect domainSelect = fff.get(RandomUtil.randomInt(0, fff.size()));
                             DomainSelect domainSelect = fff.get(RandomUtil.randomInt(0, fff.size()));
-                            String string = RandomUtil.randomString("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 6);
+                            String string = RandomStr.getRandomStr(request.getCode());
                             String domain1 = domainSelect.domain();
                             String domain1 = domainSelect.domain();
                             return Mono.just(string + "." + domain1);
                             return Mono.just(string + "." + domain1);
                         } else {
                         } else {
@@ -697,7 +701,7 @@ public class PlanNewCommonOutController {
                     .collectList().flatMap(fm -> {
                     .collectList().flatMap(fm -> {
                         int i = RandomUtil.randomInt(0, fm.size());
                         int i = RandomUtil.randomInt(0, fm.size());
                         String domain = fm.get(i).domain();
                         String domain = fm.get(i).domain();
-                        String string = RandomUtil.randomString("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 6);
+                        String string = RandomStr.getRandomStr(request.getCode());
                         return Mono.just(string + "." + domain);
                         return Mono.just(string + "." + domain);
                     });
                     });
         }
         }
@@ -764,8 +768,8 @@ public class PlanNewCommonOutController {
             Mono<List<Ad>> adtop ;
             Mono<List<Ad>> adtop ;
             if (Objects.nonNull(request.getTopAdvBl()) && request.getTopAdvBl()) {
             if (Objects.nonNull(request.getTopAdvBl()) && request.getTopAdvBl()) {
                 if(6==plan.type()){
                 if(6==plan.type()){
-                    adtop = template.select(Query.query(Criteria.where("type").is(1) //.and("group_type_id").is(plan.groupId())
-                            .and("deleted_at").isNull()).columns("id,name,type,image,show_beg_at,show_end_at,link".split(",")), Ad.class)
+                    adtop = template.select(Query.query(Criteria.where("type").is(1).and("group_type_id").is(plan.groupId())
+                            .and("deleted_at").isNull()).columns("id,name,type,image,show_beg_at,show_end_at,link,redirect_type,plan_type,plan_id,group_type_id".split(",")), Ad.class)
                             .switchIfEmpty(Mono.error(new BaseException(StrUtil.format("通过计划营销分类:{};查询顶部广告返回结果为空",plan.groupId()))))
                             .switchIfEmpty(Mono.error(new BaseException(StrUtil.format("通过计划营销分类:{};查询顶部广告返回结果为空",plan.groupId()))))
                             .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage()+"4")))
                             .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage()+"4")))
                             .collectList();////广告类型1顶部2底部3返回4安卓,ios的返回
                             .collectList();////广告类型1顶部2底部3返回4安卓,ios的返回
@@ -775,15 +779,14 @@ public class PlanNewCommonOutController {
                             .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage()+"4")))
                             .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage()+"4")))
                             .collectList();////广告类型1顶部2底部3返回4安卓,ios的返回
                             .collectList();////广告类型1顶部2底部3返回4安卓,ios的返回
                 }
                 }
-
             }else {
             }else {
                 adtop=Mono.just(List.of());
                 adtop=Mono.just(List.of());
             }
             }
             Mono<List<Ad>> adBottom ;
             Mono<List<Ad>> adBottom ;
             if (Objects.nonNull(request.getBottomAdvBl()) && request.getBottomAdvBl()) {
             if (Objects.nonNull(request.getBottomAdvBl()) && request.getBottomAdvBl()) {
                 if (6 == plan.type()) {
                 if (6 == plan.type()) {
-                    adBottom = template.select(Query.query(Criteria.where("type").is(2) //.and("group_type_id").is(plan.groupId())
-                            .and("deleted_at").isNull()).columns("id,name,type,image,show_beg_at,show_end_at,link".split(",")), Ad.class)
+                    adBottom = template.select(Query.query(Criteria.where("type").is(2).and("group_type_id").is(plan.groupId())
+                            .and("deleted_at").isNull()).columns("id,name,type,image,show_beg_at,show_end_at,link,redirect_type,plan_type,plan_id,group_type_id".split(",")), Ad.class)
                             .switchIfEmpty(Mono.error(new BaseException(StrUtil.format("通过计划营销分类:{};查询底部广告返回结果为空",plan.groupId()))))
                             .switchIfEmpty(Mono.error(new BaseException(StrUtil.format("通过计划营销分类:{};查询底部广告返回结果为空",plan.groupId()))))
                             .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage()+"4")))
                             .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage()+"4")))
                             .collectList();////广告类型1顶部2底部3返回4安卓,ios的返回
                             .collectList();////广告类型1顶部2底部3返回4安卓,ios的返回
@@ -837,7 +840,7 @@ public class PlanNewCommonOutController {
                         , null, null, null, null, null, null, null, null, null));
                         , null, null, null, null, null, null, null, null, null));
                 if (!t6.isEmpty()) {
                 if (!t6.isEmpty()) {
                     Ad ad = t6.get(RandomUtil.randomInt(0, t6.size()));
                     Ad ad = t6.get(RandomUtil.randomInt(0, t6.size()));
-                    if(6==plan.type() && Objects.nonNull(request.getTopAdvBl()) && request.getTopAdvBl()){
+                    if(6==plan.type() && Objects.nonNull(request.getBottomAdvBl()) && request.getBottomAdvBl()){
                         if (Objects.nonNull(ad.redirectType()) && ad.redirectType() == 1 && Objects.nonNull(ad.planId())&& Objects.nonNull(ad.planType())) {
                         if (Objects.nonNull(ad.redirectType()) && ad.redirectType() == 1 && Objects.nonNull(ad.planId())&& Objects.nonNull(ad.planType())) {
                             Mono<String> byCodeGetImportDomainResMono = getByCodeGetImportDomainResMono(ad.planId(), ad.planType()).switchIfEmpty(Mono.just(""));
                             Mono<String> byCodeGetImportDomainResMono = getByCodeGetImportDomainResMono(ad.planId(), ad.planType()).switchIfEmpty(Mono.just(""));
                             adMono = Mono.zip(Mono.just(ad), byCodeGetImportDomainResMono).flatMap(tuple -> {
                             adMono = Mono.zip(Mono.just(ad), byCodeGetImportDomainResMono).flatMap(tuple -> {
@@ -859,7 +862,7 @@ public class PlanNewCommonOutController {
             });
             });
             Mono<List<AlbumReq>> albumList = Mono.just(List.of());
             Mono<List<AlbumReq>> albumList = Mono.just(List.of());
             if (Objects.nonNull(request.getAlbumNum()) && 0 != request.getAlbumNum()) {
             if (Objects.nonNull(request.getAlbumNum()) && 0 != request.getAlbumNum()) {
-                Mono<List<Long>> album_id = template.select(Query.query(Criteria.empty()).columns("album_id"), Album.class).flatMap(album -> Mono.just(album.albumId())).collectList();
+                Mono<List<Long>> album_id = template.select(Query.query(Criteria.where("group_id").is(plan.groupId())).columns("album_id"), Album.class).flatMap(album -> Mono.just(album.albumId())).collectList();
                 albumList = album_id.flatMap(lists -> {
                 albumList = album_id.flatMap(lists -> {
                     if (lists.isEmpty() || lists.size() < request.getAlbumNum()) {
                     if (lists.isEmpty() || lists.size() < request.getAlbumNum()) {
                         return Mono.error(new BaseException(StrUtil.format("相册素材数:{};计划要求素材数:{} 不匹配", lists.size(), request.getAlbumNum())));
                         return Mono.error(new BaseException(StrUtil.format("相册素材数:{};计划要求素材数:{} 不匹配", lists.size(), request.getAlbumNum())));
@@ -867,7 +870,7 @@ public class PlanNewCommonOutController {
                     List<Long> longs = new ArrayList<>();
                     List<Long> longs = new ArrayList<>();
                     for (int i = 0; i < request.getAlbumNum(); i++) {
                     for (int i = 0; i < request.getAlbumNum(); i++) {
                         List<Long> collect = lists.stream().filter(f -> !longs.contains(f)).collect(Collectors.toList());
                         List<Long> collect = lists.stream().filter(f -> !longs.contains(f)).collect(Collectors.toList());
-                        Long aLong = collect.get(RandomUtil.randomInt(0, lists.size()));
+                        Long aLong = collect.get(RandomUtil.randomInt(0, collect.size()));
                         longs.add(aLong);
                         longs.add(aLong);
                     }
                     }
                     Mono<List<AlbumReq>> listMono = Flux.fromIterable(longs).flatMap(id -> {
                     Mono<List<AlbumReq>> listMono = Flux.fromIterable(longs).flatMap(id -> {
@@ -900,12 +903,88 @@ public class PlanNewCommonOutController {
                 }
                 }
                 return Mono.just(materialRes);
                 return Mono.just(materialRes);
             });
             });
-            return Mono.zip(planNewCommonMaterialResMono,albumList).flatMap(tuple->{
+
+            Mono<List<DuanjuMaterialRes>> duanju = Mono.just(List.of());
+            Mono<List<H5ImageAndText>> kefu = Mono.just(List.of());
+            if (plan.type() == 8 &&Objects.nonNull(request.getImageAndTxtNum())&& request.getImageAndTxtNum() > 0) {
+                Mono<List<Image>> image = template.select(Query.query(Criteria.where("type").is(5)
+                        .and("deleted_at").isNull()
+                        .and("group_type_id").is(plan.groupId())), Image.class)
+                        .collectList()
+                        .switchIfEmpty(Mono.error(new BaseException(StrUtil.format("通过计划groupId:{}查询Image返回结构为空", plan.groupId()))))
+                        .onErrorResume(throwable ->
+                                Mono.error(new BaseException(StrUtil.format("通过计划groupId:{}查询Image返回结果error:{}", plan.groupId(), LogExceptionStackTrace.erroStackTrace(throwable).toString()))));
+                Mono<List<Material>> text = template.select(Query.query(Criteria.where("type").is(11)
+                        .and("group_type_id").is(plan.groupId())
+                        .and("deleted_at").isNull()), Material.class)
+                        .switchIfEmpty(Mono.error(new BaseException(StrUtil.format("通过计划groupId:{}查询Material返回结构为空", plan.groupId()))))
+                        .onErrorResume(throwable ->
+                                Mono.error(new BaseException(StrUtil.format("通过计划groupId:{}查询Material返回结果error:{}", plan.groupId(), LogExceptionStackTrace.erroStackTrace(throwable).toString()))))
+                        .collectList();
+                kefu = Mono.zip(Mono.just(plan), image, text).flatMap(f -> {
+                    int integer = request.getImageAndTxtNum();
+                    List<Image> t3 = f.getT2();
+                    List<Material> t4 = f.getT3();
+                    if (t3.size() < integer || t4.size() < integer) {
+                        return Mono.error(new BaseException("客服列表图片或文字素材数量小于计划设置数"));
+                    }
+                    ArrayList<Long> listImg = new ArrayList<>();
+                    ArrayList<Long> listTxt = new ArrayList<>();
+                    List<H5ImageAndText> h5ImageAndTexts = new ArrayList<>();
+                    IntStream.range(0, integer).forEach(i -> {
+                        H5ImageAndText h5ImageAndText = new H5ImageAndText();
+                        List<Image> collect = t3.stream().filter(fff -> !listImg.contains(fff.id())).toList();
+                        if (!collect.isEmpty()) {
+                            Image image1 = collect.get(RandomUtil.randomInt(0, collect.size()));
+                            listImg.add(image1.id());
+                            h5ImageAndText.setImage(image1.image());
+                        }
+                        List<Material> collect1 = t4.stream().filter(fff -> !listTxt.contains(fff.id())).toList();
+                        if (!collect1.isEmpty()) {
+                            Material material = collect1.get(RandomUtil.randomInt(0, collect1.size()));
+                            listTxt.add(material.id());
+                            h5ImageAndText.setName(material.content());
+                            h5ImageAndText.setRemark(material.remark());
+                        }
+                        h5ImageAndTexts.add(h5ImageAndText);
+                    });
+                    return Mono.just(h5ImageAndTexts);
+                });
+                duanju= template.select(Query.query(Criteria.where("group_type_id").is(plan.groupId()).and("deleted_at").isNull()),DuanjuMaterial.class)
+                        .switchIfEmpty(Mono.error(new BaseException(StrUtil.format("通过计划groupId:{}查询DuanjuMaterial返回结构为空", plan.groupId()))))
+                        .onErrorResume(throwable ->
+                                Mono.error(new BaseException(StrUtil.format("通过计划groupId:{}查询DuanjuMaterial返回结果error:{}", plan.groupId(),
+                                        LogExceptionStackTrace.erroStackTrace(throwable).toString()))))
+                        .collectList().flatMap(list->{
+                    if (list.size() < request.getImageAndTxtNum()) {
+                        return Mono.error(new BaseException("短剧素材数量小于计划设置数"));
+                    }
+                    ArrayList<Long> listImg = new ArrayList<>();
+                    List<DuanjuMaterialRes> dJ = new ArrayList<>();
+                    IntStream.range(0, request.getImageAndTxtNum()).forEach(i -> {
+                        DuanjuMaterialRes duanjuMaterialRes = new DuanjuMaterialRes();
+                        List<DuanjuMaterial> collect = list.stream().filter(fff -> !listImg.contains(fff.id())).toList();
+                        if (!collect.isEmpty()) {
+                            DuanjuMaterial duanjuMaterial = collect.get(RandomUtil.randomInt(0, collect.size()));
+                            listImg.add(duanjuMaterial.id());
+                            duanjuMaterialRes.setImage(duanjuMaterial.thumb());
+                            duanjuMaterialRes.setTag(duanjuMaterial.tag());
+                            duanjuMaterialRes.setName(duanjuMaterial.title());
+                        }
+                        dJ.add(duanjuMaterialRes);
+                    });
+                    return Mono.just(dJ);
+                });
+
+            }
+            return Mono.zip(planNewCommonMaterialResMono,albumList,duanju,kefu).flatMap(tuple->{
                 List<AlbumReq> t2 = tuple.getT2();
                 List<AlbumReq> t2 = tuple.getT2();
                 PlanNewCommonMaterialRes t1 = tuple.getT1();
                 PlanNewCommonMaterialRes t1 = tuple.getT1();
                 if(!t2.isEmpty()){
                 if(!t2.isEmpty()){
                     t1.setAlbumList(t2);
                     t1.setAlbumList(t2);
                 }
                 }
+                t1.setDJs(tuple.getT3());
+                t1.setImages(tuple.getT4());
                 return Mono.just(t1);
                 return Mono.just(t1);
             });
             });
         });
         });
@@ -974,9 +1053,11 @@ public class PlanNewCommonOutController {
                 // 交友裂变无清水分类
                 // 交友裂变无清水分类
                 isQs = false;
                 isQs = false;
             }
             }
-            if (Objects.nonNull(request.getRedirectType()) && request.getRedirectType() == 2) {
+            if (Objects.nonNull(request.getRedirectType()) && request.getRedirectType() == 2 ) {
                 stringBuilderMono = goGenerateService.byPlanNewIdGetUrlCommon(request.getRedirectPlanId(), isQs, request.getGroupIdQs());
                 stringBuilderMono = goGenerateService.byPlanNewIdGetUrlCommon(request.getRedirectPlanId(), isQs, request.getGroupIdQs());
-            } else {
+            } else if(7 == plan.type()){
+                stringBuilderMono = Mono.just(new StringBuilder(request.getLink() == null ? "空" : request.getLink()));
+            }else {
                 stringBuilderMono = Mono.just(new StringBuilder(request.getLink() == null ? "" : request.getLink()));
                 stringBuilderMono = Mono.just(new StringBuilder(request.getLink() == null ? "" : request.getLink()));
             }
             }
             Mono<PlanNewCommon> code = Mono.just(plan);
             Mono<PlanNewCommon> code = Mono.just(plan);
@@ -1334,10 +1415,10 @@ public class PlanNewCommonOutController {
                                         planId,
                                         planId,
                                         throwable.getMessage()))))
                                         throwable.getMessage()))))
                 .flatMap(ff -> {
                 .flatMap(ff -> {
-                    Long groupId = ff.groupId();
-                    if (Objects.isNull(groupId)) {
-                        return Mono.error(new BaseException("查询common计划 groupId 值为 null"));
+                    if (Objects.isNull(ff.importDomain())) {
+                        return Mono.error(new BaseException("查询common计划 importDomain 值为 null"));
                     }
                     }
+                    Long groupId = Long.valueOf(ff.importDomain());
                     if(Objects.nonNull(ff.type()) && 5==ff.type()){
                     if(Objects.nonNull(ff.type()) && 5==ff.type()){
                         String configJson = ff.configJson();
                         String configJson = ff.configJson();
                         if(Objects.nonNull(configJson) ){
                         if(Objects.nonNull(configJson) ){
@@ -1359,8 +1440,15 @@ public class PlanNewCommonOutController {
                             //return Mono.just(new StringBuilder(s));
                             //return Mono.just(new StringBuilder(s));
                         }
                         }
                         //saveRequest.setImportDomain(String.valueOf(saveRequest.getGroupId()));
                         //saveRequest.setImportDomain(String.valueOf(saveRequest.getGroupId()));
+                        return getDomainSetV(groupId, planId,2, ff.code(),false,false);
+                    }else {
+                         if (3 == ff.type() || 4==ff.type()) {
+                            return getDomainSetV(groupId, planId,1, ff.code(),true,false);
+                        }else {
+                            return getDomainSetV(groupId, planId,1, ff.code(),false,false);
+                        }
                     }
                     }
-                    return getDomainSetV(groupId, planId,2, ff.code());
+
                 });
                 });
     }
     }
     private Mono<ByCodeGetImportDomainRes> getNewListeningNewPlan(String planId, Query query) {
     private Mono<ByCodeGetImportDomainRes> getNewListeningNewPlan(String planId, Query query) {
@@ -1380,7 +1468,7 @@ public class PlanNewCommonOutController {
                     if (Objects.isNull(groupId)) {
                     if (Objects.isNull(groupId)) {
                         return Mono.error(new BaseException("查询裂变计划 groupId 值为 null"));
                         return Mono.error(new BaseException("查询裂变计划 groupId 值为 null"));
                     }
                     }
-                    return getDomainSetV(groupId, planId,1, ff.code());
+                    return getDomainSetV(groupId, planId,1, ff.code(),false,false);
                 });
                 });
     }
     }
 
 
@@ -1407,11 +1495,11 @@ public class PlanNewCommonOutController {
                     }catch (Exception e){
                     }catch (Exception e){
                         return Mono.error(new BaseException("查询听书计划入口域名类型值解析错误"+e.getMessage()));
                         return Mono.error(new BaseException("查询听书计划入口域名类型值解析错误"+e.getMessage()));
                     }
                     }
-                    return getDomainSetV(groupId, planId,1,ff.code());
+                    return getDomainSetV(groupId, planId,1,ff.code(),false,true);
                 });
                 });
     }
     }
 
 
-    private Mono<ByCodeGetImportDomainRes> getDomainSetV( Long  groupId, String planId,Integer type,String code) {
+    private Mono<ByCodeGetImportDomainRes> getDomainSetV( Long  groupId, String planId,Integer type,String code,boolean isFri,boolean isAddGroup) {
         return template.select(Query.query(Criteria.where("group_type_id").is(groupId)
         return template.select(Query.query(Criteria.where("group_type_id").is(groupId)
                         .and("status").is(1)
                         .and("status").is(1)
                         .and("type").is(type)
                         .and("type").is(type)
@@ -1433,18 +1521,22 @@ public class PlanNewCommonOutController {
                     if(!f2.isEmpty()){
                     if(!f2.isEmpty()){
                         DomainSelect domainSelect = f2.get(RandomUtil.randomInt(0, f2.size()));
                         DomainSelect domainSelect = f2.get(RandomUtil.randomInt(0, f2.size()));
                         stringBuilder.append("http://");
                         stringBuilder.append("http://");
-                        stringBuilder.append(get6Str());
+                        stringBuilder.append(get6Str(code));
                         stringBuilder.append(".");
                         stringBuilder.append(".");
                         stringBuilder.append(domainSelect.domain());
                         stringBuilder.append(domainSelect.domain());
                         if(2==type){
                         if(2==type){
                             stringBuilder.append("?code=");
                             stringBuilder.append("?code=");
+                        }else if(isFri) {
+                            stringBuilder.append("/portal-page/index?code=");
                         }else {
                         }else {
                             stringBuilder.append("/index.html?code=");
                             stringBuilder.append("/index.html?code=");
                         }
                         }
-
                         stringBuilder.append(code);
                         stringBuilder.append(code);
                         stringBuilder.append("&sk=");
                         stringBuilder.append("&sk=");
                         stringBuilder.append(IdUtil.fastSimpleUUID());
                         stringBuilder.append(IdUtil.fastSimpleUUID());
+                        if (isAddGroup) {
+                            stringBuilder.append("&id=57");
+                        }
                     }else {
                     }else {
                         return Mono.error(new BaseException(StrUtil.format("通过code:{},groupId:{};查询域名Error::{}",code,groupId,"错误")));
                         return Mono.error(new BaseException(StrUtil.format("通过code:{},groupId:{};查询域名Error::{}",code,groupId,"错误")));
                     }
                     }
@@ -1453,8 +1545,8 @@ public class PlanNewCommonOutController {
                     return Mono.just(domain);
                     return Mono.just(domain);
                 });
                 });
     }
     }
-    private String get6Str() {
-        return RandomUtil.randomString("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 6);
+    private String get6Str(String code) {
+        return RandomStr.getRandomStr(code);
     }
     }
 
 
 
 

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

@@ -21,6 +21,7 @@ import com.webflux.launchadmin.mysql.service.listening.ListeningPlanServiceInter
 import com.webflux.launchadmin.mysql.service.planNew.PlanServiceInterface;
 import com.webflux.launchadmin.mysql.service.planNew.PlanServiceInterface;
 import com.webflux.launchadmin.mysql.service.planNew.goGenerate.GoGenerateService;
 import com.webflux.launchadmin.mysql.service.planNew.goGenerate.GoGenerateService;
 import com.webflux.launchadmin.mysql.service.planNew.structure.GoRequest;
 import com.webflux.launchadmin.mysql.service.planNew.structure.GoRequest;
+import com.webflux.launchadmin.utils.RandomStr;
 import com.webflux.launchcommon.returnObj.Paged;
 import com.webflux.launchcommon.returnObj.Paged;
 import com.webflux.launchcommon.returnObj.RStatus;
 import com.webflux.launchcommon.returnObj.RStatus;
 import jakarta.annotation.Resource;
 import jakarta.annotation.Resource;
@@ -247,7 +248,7 @@ public class PlanNewController {
 
 
     @PostMapping("test12")
     @PostMapping("test12")
     public Mono<String> test112() {
     public Mono<String> test112() {
-        String string = RandomUtil.randomString("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 6);
+        String string = RandomStr.getRandomStr("code");
         return Mono.just(string);// goGenerateService.updatePoster12();
         return Mono.just(string);// goGenerateService.updatePoster12();
     }
     }
 
 
@@ -546,7 +547,8 @@ public class PlanNewController {
                         saveRequest.getTransferPageBl(),
                         saveRequest.getTransferPageBl(),
                         saveRequest.getBackgroupDomain(),
                         saveRequest.getBackgroupDomain(),
                         listButton,
                         listButton,
-                        saveRequest.getGroupListDisplay()
+                        saveRequest.getGroupListDisplay(),
+                        saveRequest.getPressImage()
                 );
                 );
                 return template.insert(plan);
                 return template.insert(plan);
             });
             });
@@ -683,7 +685,8 @@ public class PlanNewController {
                         saveRequest.getTransferPageBl(),
                         saveRequest.getTransferPageBl(),
                         saveRequest.getBackgroupDomain(),
                         saveRequest.getBackgroupDomain(),
                         listButton,
                         listButton,
-                        saveRequest.getGroupListDisplay()
+                        saveRequest.getGroupListDisplay(),
+                        saveRequest.getPressImage()
                 );
                 );
                 return Mono.just(planNew);
                 return Mono.just(planNew);
             }).flatMap(template::update);
             }).flatMap(template::update);
@@ -779,7 +782,8 @@ public class PlanNewController {
                             saveRequest.transferPageBl(),
                             saveRequest.transferPageBl(),
                             saveRequest.backgroupDomain(),
                             saveRequest.backgroupDomain(),
                             saveRequest.listButton(),
                             saveRequest.listButton(),
-                            saveRequest.groupListDisplay()
+                            saveRequest.groupListDisplay(),
+                            saveRequest.pressImage()
                     )).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")
@@ -909,7 +913,8 @@ public class PlanNewController {
                                         // saveRequest.transferPageDomain(),
                                         // saveRequest.transferPageDomain(),
                                         saveRequest.transferPageBl(),
                                         saveRequest.transferPageBl(),
                                         Objects.nonNull(saveRequest.backgroupDomain()) && !"".equals(saveRequest.backgroupDomain().trim()) ? Integer.valueOf(saveRequest.backgroupDomain()) : null,
                                         Objects.nonNull(saveRequest.backgroupDomain()) && !"".equals(saveRequest.backgroupDomain().trim()) ? Integer.valueOf(saveRequest.backgroupDomain()) : null,
-                                        saveRequest.groupListDisplay()
+                                        saveRequest.groupListDisplay(),
+                                        saveRequest.pressImage()
 
 
                                         // saveRequest.backgroupDomain()
                                         // saveRequest.backgroupDomain()
                                 );
                                 );
@@ -962,6 +967,7 @@ public class PlanNewController {
                                         null,
                                         null,
                                         null,
                                         null,
                                         null,
                                         null,
+                                        null,
                                         null
                                         null
 
 
                                 );
                                 );

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

@@ -19,6 +19,8 @@ import com.webflux.launchadmin.mysql.service.planNew.goGenerate.GoGenerateServic
 import com.webflux.launchadmin.mysql.service.planNew.ipAnalyze.IpAnalyzeServiceInterface;
 import com.webflux.launchadmin.mysql.service.planNew.ipAnalyze.IpAnalyzeServiceInterface;
 import com.webflux.launchadmin.mysql.service.planNew.structure.GoRequest;
 import com.webflux.launchadmin.mysql.service.planNew.structure.GoRequest;
 import com.webflux.launchadmin.mysql.service.planNew.structure.Item;
 import com.webflux.launchadmin.mysql.service.planNew.structure.Item;
+import com.webflux.launchadmin.mysql.service.sourceMaterial.SourceMaterialInterface;
+import com.webflux.launchadmin.utils.RandomStr;
 import com.webflux.launchcommon.returnObj.RStatus;
 import com.webflux.launchcommon.returnObj.RStatus;
 import com.weblux.launchredis.utils.RedisKey;
 import com.weblux.launchredis.utils.RedisKey;
 import jakarta.annotation.Resource;
 import jakarta.annotation.Resource;
@@ -27,6 +29,7 @@ import net.javacrumbs.shedlock.spring.annotation.SchedulerLock;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Sort;
 import org.springframework.data.domain.Sort;
 import org.springframework.data.r2dbc.core.R2dbcEntityTemplate;
 import org.springframework.data.r2dbc.core.R2dbcEntityTemplate;
+import org.springframework.data.redis.core.ReactiveRedisTemplate;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.data.relational.core.query.Criteria;
 import org.springframework.data.relational.core.query.Criteria;
 import org.springframework.data.relational.core.query.Query;
 import org.springframework.data.relational.core.query.Query;
@@ -40,6 +43,7 @@ import java.net.InetSocketAddress;
 import java.net.URLEncoder;
 import java.net.URLEncoder;
 import java.net.http.HttpRequest;
 import java.net.http.HttpRequest;
 import java.nio.charset.StandardCharsets;
 import java.nio.charset.StandardCharsets;
+import java.time.Duration;
 import java.time.ZonedDateTime;
 import java.time.ZonedDateTime;
 import java.util.*;
 import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentHashMap;
@@ -71,7 +75,11 @@ public class PlanNewOutController {
 
 
     @Resource
     @Resource
     private PlanServiceInterface planServiceInterface;
     private PlanServiceInterface planServiceInterface;
+    @Resource
+    private ReactiveRedisTemplate<String,String> reactiveRedisTemplate;
 
 
+    @Autowired
+    private SourceMaterialInterface sourceMaterialInterface;
     //private static final ConcurrentHashMap<String,Integer> map = new ConcurrentHashMap<String,Integer>();
     //private static final ConcurrentHashMap<String,Integer> map = new ConcurrentHashMap<String,Integer>();
 
 
     //清空用户Map数据
     //清空用户Map数据
@@ -121,7 +129,7 @@ public class PlanNewOutController {
                             .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage()))).collectList().flatMap(fff -> {
                             .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage()))).collectList().flatMap(fff -> {
                                 if (!fff.isEmpty()) {
                                 if (!fff.isEmpty()) {
                                     DomainSelect domainSelect = fff.get(RandomUtil.randomInt(0, fff.size()));
                                     DomainSelect domainSelect = fff.get(RandomUtil.randomInt(0, fff.size()));
-                                    String string = RandomUtil.randomString("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 6);
+                                    String string = RandomStr.getRandomStr(code);
                                     String domain1 = domainSelect.domain();
                                     String domain1 = domainSelect.domain();
                                     return Mono.just(string+"."+domain1);
                                     return Mono.just(string+"."+domain1);
 
 
@@ -143,7 +151,7 @@ public class PlanNewOutController {
                             .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage()))).collectList().flatMap(fff -> {
                             .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage()))).collectList().flatMap(fff -> {
                                 if (!fff.isEmpty()) {
                                 if (!fff.isEmpty()) {
                                     DomainSelect domainSelect = fff.get(RandomUtil.randomInt(0, fff.size()));
                                     DomainSelect domainSelect = fff.get(RandomUtil.randomInt(0, fff.size()));
-                                    String string = RandomUtil.randomString("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 6);
+                                    String string = RandomStr.getRandomStr(code);
                                     String domain1 = domainSelect.domain();
                                     String domain1 = domainSelect.domain();
                                     return Mono.just(string+"."+domain1);
                                     return Mono.just(string+"."+domain1);
                                 } else {
                                 } else {
@@ -160,7 +168,7 @@ public class PlanNewOutController {
                           //  DomainSelectRes domainSelectRes = new DomainSelectRes();
                           //  DomainSelectRes domainSelectRes = new DomainSelectRes();
                             int i = RandomUtil.randomInt(0, fm.size());
                             int i = RandomUtil.randomInt(0, fm.size());
                             String domain = fm.get(i).domain();
                             String domain = fm.get(i).domain();
-                            String string = RandomUtil.randomString("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 6);
+                            String string = RandomStr.getRandomStr(code);
                           //  domainSelectRes.setBackgroupDomain(f.backgroupDomain());
                           //  domainSelectRes.setBackgroupDomain(f.backgroupDomain());
                          //   domainSelectRes.setTransferPageDomain(f.transferPageDomain());
                          //   domainSelectRes.setTransferPageDomain(f.transferPageDomain());
                            // domainSelectRes.setTransferPageBl(f.transferPageBl());
                            // domainSelectRes.setTransferPageBl(f.transferPageBl());
@@ -200,7 +208,7 @@ public class PlanNewOutController {
             DomainSelect domainInfo = com.alibaba.fastjson.JSONObject.parseObject(domainInfoCache.toString(),DomainSelect.class);
             DomainSelect domainInfo = com.alibaba.fastjson.JSONObject.parseObject(domainInfoCache.toString(),DomainSelect.class);
             DomainSelectRes domainSelectRes = new DomainSelectRes();
             DomainSelectRes domainSelectRes = new DomainSelectRes();
             String domain = domainInfo.domain();
             String domain = domainInfo.domain();
-            String string = RandomUtil.randomString("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 6);
+            String string = RandomStr.getRandomStr(code);
             domainSelectRes.setDomain(string+"."+domain);
             domainSelectRes.setDomain(string+"."+domain);
             domainSelectRes.setPath("");
             domainSelectRes.setPath("");
             domainSelectRes.setUnique(IdUtil.fastSimpleUUID());
             domainSelectRes.setUnique(IdUtil.fastSimpleUUID());
@@ -319,7 +327,7 @@ public class PlanNewOutController {
             "background_group_qs_id,top_adv_bl,bottom_adv_bl,return_loop_bl,group_Id_qs,baidu_dot," +
             "background_group_qs_id,top_adv_bl,bottom_adv_bl,return_loop_bl,group_Id_qs,baidu_dot," +
             "background_group_id_new_add,preview_url,redirect_type,redirect_plan_id," +
             "background_group_id_new_add,preview_url,redirect_type,redirect_plan_id," +
             "import_domain,landing_page_domain,transfer_page_domain,transfer_page_bl," +
             "import_domain,landing_page_domain,transfer_page_domain,transfer_page_bl," +
-            "backgroup_domain,list_button,group_list_display";
+            "backgroup_domain,list_button,group_list_display,press_image";
     private static final String[] COLUMNARRAYPLANNEW=COLUMN.split(",");
     private static final String[] COLUMNARRAYPLANNEW=COLUMN.split(",");
     /**
     /**
      * h5-通过code (第一个接口)
      * h5-通过code (第一个接口)
@@ -328,6 +336,9 @@ public class PlanNewOutController {
      */
      */
     @PostMapping("hfoInfo")
     @PostMapping("hfoInfo")
     public Mono<RStatus<DataLists>> hfoInfo(@RequestBody HfoRequest request, ServerWebExchange exchange){
     public Mono<RStatus<DataLists>> hfoInfo(@RequestBody HfoRequest request, ServerWebExchange exchange){
+        Mono<String> stringMono = reactiveRedisTemplate.opsForValue().get(request.getUnique()).switchIfEmpty(Mono.just(""));
+        Mono<String> stringMono1 = reactiveRedisTemplate.opsForValue().get(request.getUnique() + "-returnLoop").switchIfEmpty(Mono.just(""));
+
         if (Objects.isNull(request.getCode()) || "".equals(request.getCode().trim())) {
         if (Objects.isNull(request.getCode()) || "".equals(request.getCode().trim())) {
           throw  new BaseException("code异常");
           throw  new BaseException("code异常");
         }
         }
@@ -344,7 +355,22 @@ public class PlanNewOutController {
                 .columns(COLUMNARRAYPLANNEW), PlanNew.class)
                 .columns(COLUMNARRAYPLANNEW), PlanNew.class)
                 .switchIfEmpty(Mono.error(new BaseException(" code错误")))
                 .switchIfEmpty(Mono.error(new BaseException(" code错误")))
                 .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage())));
                 .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage())));
-        Mono<DataLists> dataListsMono1 = code0.flatMap(planNew -> {
+        Mono<DataLists> dataListsMono1 = Mono.zip(code0,stringMono,stringMono1).flatMap(tuple2 -> {
+            String t21 = tuple2.getT2();
+            PlanNew planNew = tuple2.getT1();
+            String t31 = tuple2.getT3();
+            if( !t21.isBlank()){
+                JSONArray jsonArray = JSONUtil.parseArray(t21);
+                List<H5ImageAndText> collect = jsonArray.stream().map(str -> JSONUtil.toBean(JSONUtil.parseObj(str), H5ImageAndText.class)).collect(Collectors.toList());
+                DataLists dataLists = new DataLists();
+                dataLists.setImages(collect);
+                dataLists.setPlanNew(planNew);
+                if (!"".equals(t31)) {
+                    ReturnLoop returnLoop = sourceMaterialInterface.strParseT(t31, ReturnLoop.class);
+                    dataLists.setReturnLoop(returnLoop);
+                }
+                return Mono.just(dataLists);
+            }
             Mono<PlanNew> code = Mono.just(planNew);
             Mono<PlanNew> code = Mono.just(planNew);
             Long group_type_id ; //.and("group_type_id").is(group_type_id)
             Long group_type_id ; //.and("group_type_id").is(group_type_id)
             if (Objects.isNull(request.getWx_user_id()) || "".equals(request.getWx_user_id())) {
             if (Objects.isNull(request.getWx_user_id()) || "".equals(request.getWx_user_id())) {
@@ -504,7 +530,7 @@ public class PlanNewOutController {
 //                            .onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()))).collectList().flatMap(fff -> {
 //                            .onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()))).collectList().flatMap(fff -> {
 //                                if (!fff.isEmpty()) {
 //                                if (!fff.isEmpty()) {
 //                                    DomainSelect domainSelect = fff.get(RandomUtil.randomInt(0, fff.size()));
 //                                    DomainSelect domainSelect = fff.get(RandomUtil.randomInt(0, fff.size()));
-//                                    String string = RandomUtil.randomString("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 6);
+//                                    String string = RandomStr.getRandomStr();
 //                                    String domain1 = domainSelect.domain();
 //                                    String domain1 = domainSelect.domain();
 //                                    return Mono.just(string+"."+domain1);
 //                                    return Mono.just(string+"."+domain1);
 //
 //
@@ -526,7 +552,7 @@ public class PlanNewOutController {
 //                            .onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()))).collectList().flatMap(fff -> {
 //                            .onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()))).collectList().flatMap(fff -> {
 //                                if (!fff.isEmpty()) {
 //                                if (!fff.isEmpty()) {
 //                                    DomainSelect domainSelect = fff.get(RandomUtil.randomInt(0, fff.size()));
 //                                    DomainSelect domainSelect = fff.get(RandomUtil.randomInt(0, fff.size()));
-//                                    String string = RandomUtil.randomString("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 6);
+//                                    String string = RandomStr.getRandomStr();
 //                                    String domain1 = domainSelect.domain();
 //                                    String domain1 = domainSelect.domain();
 //                                    return Mono.just(string+"."+domain1);
 //                                    return Mono.just(string+"."+domain1);
 //                                } else {
 //                                } else {
@@ -543,8 +569,14 @@ public class PlanNewOutController {
 //                    t3.setBackgroupDomain(fff.getT2());
 //                    t3.setBackgroupDomain(fff.getT2());
 //                    return Mono.just(t3);
 //                    return Mono.just(t3);
 //                });
 //                });
+                reactiveRedisTemplate.opsForValue().set(request.getUnique(), JSONUtil.toJsonStr(dataLists.getImages()), Duration.ofHours(1)).subscribe();
+                if (Objects.nonNull(dataLists.getReturnLoop())) {
+                    reactiveRedisTemplate.opsForValue().set(request.getUnique()+"-returnLoop", sourceMaterialInterface.tToString(dataLists.getReturnLoop()), Duration.ofHours(1)).subscribe();
+                }
                 return Mono.just(dataLists);
                 return Mono.just(dataLists);
             });
             });
+
+
             return dataListsMono;
             return dataListsMono;
         });
         });
         return RStatus.successList(dataListsMono1);
         return RStatus.successList(dataListsMono1);
@@ -656,6 +688,7 @@ public class PlanNewOutController {
 //设置二维码 生成图片
 //设置二维码 生成图片
     private Mono<DataLists0> setEndData(HftRequest request, Mono<DataLists0> dataLists0Mono2) {
     private Mono<DataLists0> setEndData(HftRequest request, Mono<DataLists0> dataLists0Mono2) {
         Mono<DataLists0> dataLists0Mono1 = dataLists0Mono2.flatMap(fm -> {
         Mono<DataLists0> dataLists0Mono1 = dataLists0Mono2.flatMap(fm -> {
+            String code = fm.getPlanNew().code();
             Poster poster = fm.getPoster();
             Poster poster = fm.getPoster();
             if (Objects.isNull(poster)) {
             if (Objects.isNull(poster)) {
                 return Mono.just(fm);
                 return Mono.just(fm);
@@ -705,7 +738,12 @@ public class PlanNewOutController {
                     });
                     });
                 }
                 }
                 DataLists0 fm3 = f9.getT3();
                 DataLists0 fm3 = f9.getT3();
-                String ret = goGenerateService.goGenerate(JSONUtil.toJsonStr(goRequest2));
+               String ret;
+                if("38fcfd7bd5434c5d91d6b9519986a098".equals(code)){
+                     ret = goGenerateService.goGenerateCode(JSONUtil.toJsonStr(goRequest2));
+                }else {
+                     ret = goGenerateService.goGenerate(JSONUtil.toJsonStr(goRequest2));
+                }
                 if (Objects.nonNull(ret)) {
                 if (Objects.nonNull(ret)) {
                     JSONObject jsonObject1;
                     JSONObject jsonObject1;
                     try {
                     try {

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

@@ -17,7 +17,7 @@ public class PlanNewCommonMaterialReq {
     private Long retAudioId;
     private Long retAudioId;
     /** 返回广告 */
     /** 返回广告 */
     private Long returnLoopId;
     private Long returnLoopId;
-    /** 分享背景组id */
+    /**计划 group_id 查询 分享背景组 */
     private Long backgroundGroupId;
     private Long backgroundGroupId;
     /**
     /**
      * 外卖模版id
      * 外卖模版id
@@ -31,6 +31,10 @@ public class PlanNewCommonMaterialReq {
      * 用户相册数
      * 用户相册数
      */
      */
     private Integer albumNum;
     private Integer albumNum;
+    /**
+     * 复粉 图文数量
+     */
+    private Integer imageAndTxtNum;
 
 
 
 
 }
 }

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

@@ -160,4 +160,6 @@ public class PlanReq {
      * 群列表展示
      * 群列表展示
      */
      */
     private Integer groupListDisplay;
     private Integer groupListDisplay;
+
+    private String pressImage;
 }
 }

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

@@ -0,0 +1,10 @@
+package com.webflux.launchadmin.mysql.controller.planNew.res;
+
+import com.webflux.launchadmin.mysql.controller.sourceMaterial.data.album.AlbumReq;
+import lombok.Data;
+
+import java.util.List;
+@Data
+public class AlbumDataRes {
+    private List<AlbumReq> albumList;
+}

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

@@ -0,0 +1,20 @@
+package com.webflux.launchadmin.mysql.controller.planNew.res;
+
+import lombok.Data;
+
+@Data
+public class DuanjuMaterialRes {
+    /**
+     * 图片
+     */
+  private  String image;
+    /**
+     * 名称
+     */
+  private String name;
+    /**
+     * 标签
+     */
+  private String  tag;
+
+}

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

@@ -70,4 +70,6 @@ public class PlanNewAllRs {
 
 
 
 
     private Integer groupListDisplay;
     private Integer groupListDisplay;
+
+    private String pressImage;
 }
 }

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

@@ -33,7 +33,7 @@ public class PlanNewCommonMaterialRes {
     private ReturnLoop returnLoop;
     private ReturnLoop returnLoop;
 
 
     /**
     /**
-     * 分享背景组
+     * 分享背景组 所有图片
      */
      */
     private List<String> shareUrls;
     private List<String> shareUrls;
     /**
     /**
@@ -52,4 +52,14 @@ public class PlanNewCommonMaterialRes {
      * 相册
      * 相册
      */
      */
     private List<AlbumReq> albumList;
     private List<AlbumReq> albumList;
+    //复粉
+    /**
+     * 短剧素材
+     */
+    private List<DuanjuMaterialRes> dJs;
+
+    /**
+     * 客服列表
+     */
+    List<H5ImageAndText> images;
 }
 }

+ 1 - 1
launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/sourceMaterial/AlbumController.java

@@ -21,7 +21,7 @@ import reactor.core.publisher.Mono;
  * @date 2024/08/10
  * @date 2024/08/10
  */
  */
 @RestController
 @RestController
-@RequestMapping("out/album")
+@RequestMapping("in/album")
 public class AlbumController {
 public class AlbumController {
     @Resource
     @Resource
     private MaterialManagementInterface sourceMaterialInterface;
     private MaterialManagementInterface sourceMaterialInterface;

+ 24 - 0
launch-admin/src/main/java/com/webflux/launchadmin/mysql/entity/planNew/DuanjuMaterial.java

@@ -0,0 +1,24 @@
+package com.webflux.launchadmin.mysql.entity.planNew;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.data.annotation.Id;
+import org.springframework.data.relational.core.mapping.Table;
+
+import java.io.Serializable;
+import java.time.ZonedDateTime;
+
+@Table("duanju_material")
+public record DuanjuMaterial(
+        @Id Long id,
+        String thumb,//封面
+        String title,//标题
+        String tag,//标签
+        String createUser,
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") ZonedDateTime createdAt,
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") ZonedDateTime updatedAt,
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") ZonedDateTime deletedAt,
+        String groupTypeName,
+        Integer groupTypeId
+) implements Serializable {
+
+}

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

@@ -50,7 +50,8 @@ public record PlanNew  (
         Integer transferPageBl, //中转页开关 1:true 0:F
         Integer transferPageBl, //中转页开关 1:true 0:F
         String backgroupDomain,//背景组域名
         String backgroupDomain,//背景组域名
         String listButton,
         String listButton,
-        Integer groupListDisplay
+        Integer groupListDisplay,
+        String pressImage
 
 
 ) implements Serializable{
 ) implements Serializable{
 }
 }

+ 8 - 7
launch-admin/src/main/java/com/webflux/launchadmin/mysql/service/listening/ListeningPlanServiceImpl.java

@@ -26,6 +26,7 @@ import com.webflux.launchadmin.mysql.service.planNew.structure.GoRequest;
 import com.webflux.launchadmin.mysql.service.planNew.structure.Item;
 import com.webflux.launchadmin.mysql.service.planNew.structure.Item;
 import com.webflux.launchadmin.mysql.task.SyncListeningAudioToRedis;
 import com.webflux.launchadmin.mysql.task.SyncListeningAudioToRedis;
 import com.webflux.launchadmin.mysql.task.SyncPlanNewListenToRedis;
 import com.webflux.launchadmin.mysql.task.SyncPlanNewListenToRedis;
+import com.webflux.launchadmin.utils.RandomStr;
 import com.webflux.launchcommon.returnObj.Paged;
 import com.webflux.launchcommon.returnObj.Paged;
 import com.webflux.launchcommon.returnObj.RStatus;
 import com.webflux.launchcommon.returnObj.RStatus;
 import jakarta.annotation.Resource;
 import jakarta.annotation.Resource;
@@ -232,7 +233,7 @@ public class ListeningPlanServiceImpl implements ListeningPlanServiceInterface{
                                 if (Objects.nonNull(b) && !b.isEmpty()) {
                                 if (Objects.nonNull(b) && !b.isEmpty()) {
                                     DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
                                     DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
                                     stringBuilder.append("http://");
                                     stringBuilder.append("http://");
-                                    stringBuilder.append( get6Str());
+                                    stringBuilder.append( get6Str(a.code()));
                                     stringBuilder.append(".");
                                     stringBuilder.append(".");
                                     stringBuilder.append(domainSelect.domain());
                                     stringBuilder.append(domainSelect.domain());
                                     stringBuilder.append("/index.html?code=");
                                     stringBuilder.append("/index.html?code=");
@@ -567,7 +568,7 @@ public class ListeningPlanServiceImpl implements ListeningPlanServiceInterface{
                     if (Objects.nonNull(b) && !b.isEmpty()) {
                     if (Objects.nonNull(b) && !b.isEmpty()) {
                         DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
                         DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
                         stringBuilder.append("http://");
                         stringBuilder.append("http://");
-                        stringBuilder.append(get6Str());
+                        stringBuilder.append(get6Str(a.code()));
                         stringBuilder.append(".");
                         stringBuilder.append(".");
                         stringBuilder.append(domainSelect.domain());
                         stringBuilder.append(domainSelect.domain());
                         stringBuilder.append("/index.html?code=");
                         stringBuilder.append("/index.html?code=");
@@ -814,7 +815,7 @@ public class ListeningPlanServiceImpl implements ListeningPlanServiceInterface{
                                 if (Objects.nonNull(b) && !b.isEmpty()) {
                                 if (Objects.nonNull(b) && !b.isEmpty()) {
                                     DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
                                     DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
                                     stringBuilder.append("http://");
                                     stringBuilder.append("http://");
-                                    stringBuilder.append( get6Str());
+                                    stringBuilder.append( get6Str(a.code()));
                                     stringBuilder.append(".");
                                     stringBuilder.append(".");
                                     stringBuilder.append(domainSelect.domain());
                                     stringBuilder.append(domainSelect.domain());
                                     stringBuilder.append("/index.html?code=");
                                     stringBuilder.append("/index.html?code=");
@@ -1172,7 +1173,7 @@ public class ListeningPlanServiceImpl implements ListeningPlanServiceInterface{
         if (Objects.nonNull(b) && !b.isEmpty()) {
         if (Objects.nonNull(b) && !b.isEmpty()) {
             DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
             DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
             stringBuilder.append("http://");
             stringBuilder.append("http://");
-            stringBuilder.append(get6Str());
+            stringBuilder.append(get6Str(a.code()));
             stringBuilder.append(".");
             stringBuilder.append(".");
             stringBuilder.append(domainSelect.domain());
             stringBuilder.append(domainSelect.domain());
             stringBuilder.append("/index.html?code=");
             stringBuilder.append("/index.html?code=");
@@ -1187,7 +1188,7 @@ public class ListeningPlanServiceImpl implements ListeningPlanServiceInterface{
         if (Objects.nonNull(b) && !b.isEmpty()) {
         if (Objects.nonNull(b) && !b.isEmpty()) {
             DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
             DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
             stringBuilder.append("http://");
             stringBuilder.append("http://");
-            stringBuilder.append(get6Str());
+            stringBuilder.append(get6Str(saveRequest.getCode()));
             stringBuilder.append(".");
             stringBuilder.append(".");
             stringBuilder.append(domainSelect.domain());
             stringBuilder.append(domainSelect.domain());
             stringBuilder.append("/index.html?code=");
             stringBuilder.append("/index.html?code=");
@@ -1200,8 +1201,8 @@ public class ListeningPlanServiceImpl implements ListeningPlanServiceInterface{
     }
     }
 
 
 
 
-    private String get6Str() {
-        String string = RandomUtil.randomString("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 6);
+    private String get6Str(String code) {
+        String string = RandomStr.getRandomStr(code);
         return string;
         return string;
     }
     }
     //背景
     //背景

+ 21 - 10
launch-admin/src/main/java/com/webflux/launchadmin/mysql/service/otherServices/OtherServicesImpl.java

@@ -13,6 +13,7 @@ import com.webflux.launchadmin.mysql.entity.planNew.DomainSelect;
 import com.webflux.launchadmin.mysql.entity.planNew.PlanNew;
 import com.webflux.launchadmin.mysql.entity.planNew.PlanNew;
 import com.webflux.launchadmin.mysql.entity.planNew.PlanNewCommon;
 import com.webflux.launchadmin.mysql.entity.planNew.PlanNewCommon;
 import com.webflux.launchadmin.mysql.service.planNew.structure.Item;
 import com.webflux.launchadmin.mysql.service.planNew.structure.Item;
+import com.webflux.launchadmin.utils.RandomStr;
 import com.webflux.launchcommon.returnObj.RStatus;
 import com.webflux.launchcommon.returnObj.RStatus;
 import jakarta.annotation.Resource;
 import jakarta.annotation.Resource;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.NotNull;
@@ -94,10 +95,10 @@ public class OtherServicesImpl implements   OtherServicesInterface {
                                         code,
                                         code,
                                         throwable.getMessage()))))
                                         throwable.getMessage()))))
                 .flatMap(ff -> {
                 .flatMap(ff -> {
-                    Long groupId = ff.groupId();
-                    if (Objects.isNull(groupId)) {
-                        return Mono.error(new BaseException("查询common计划 groupId 值为 null"));
+                    if (Objects.isNull(ff.importDomain())) {
+                        return Mono.error(new BaseException("查询common计划 importDomain 值为 null"));
                     }
                     }
+                    Long groupId = Long.valueOf(ff.importDomain());
                     if(Objects.nonNull(ff.type()) && 5==ff.type()){
                     if(Objects.nonNull(ff.type()) && 5==ff.type()){
                         String configJson = ff.configJson();
                         String configJson = ff.configJson();
                         if(Objects.nonNull(configJson) ){
                         if(Objects.nonNull(configJson) ){
@@ -119,8 +120,16 @@ public class OtherServicesImpl implements   OtherServicesInterface {
                             //return Mono.just(new StringBuilder(s));
                             //return Mono.just(new StringBuilder(s));
                         }
                         }
                         //saveRequest.setImportDomain(String.valueOf(saveRequest.getGroupId()));
                         //saveRequest.setImportDomain(String.valueOf(saveRequest.getGroupId()));
+                        return getDomainSetV(groupId, code,2,false);
+                    }else {
+                        if (3 == ff.type()|| 4== ff.type()) {
+                            return getDomainSetV(groupId, code,1,true);
+                        }else {
+                            return getDomainSetV(groupId, code,1,false);
+                        }
+
                     }
                     }
-                    return getDomainSetV(groupId, code,2);
+
                 });
                 });
     }
     }
     private Mono<ByCodeGetImportDomainRes> getNewListeningNewPlan(String code, Query query) {
     private Mono<ByCodeGetImportDomainRes> getNewListeningNewPlan(String code, Query query) {
@@ -140,7 +149,7 @@ public class OtherServicesImpl implements   OtherServicesInterface {
                     if (Objects.isNull(groupId)) {
                     if (Objects.isNull(groupId)) {
                         return Mono.error(new BaseException("查询裂变计划 groupId 值为 null"));
                         return Mono.error(new BaseException("查询裂变计划 groupId 值为 null"));
                     }
                     }
-                    return getDomainSetV(groupId, code,1);
+                    return getDomainSetV(groupId, code,1,false);
                 });
                 });
     }
     }
 
 
@@ -167,11 +176,11 @@ public class OtherServicesImpl implements   OtherServicesInterface {
                     }catch (Exception e){
                     }catch (Exception e){
                         return Mono.error(new BaseException("查询听书计划入口域名类型值解析错误"+e.getMessage()));
                         return Mono.error(new BaseException("查询听书计划入口域名类型值解析错误"+e.getMessage()));
                     }
                     }
-                    return getDomainSetV(groupId, code,1);
+                    return getDomainSetV(groupId, code,1,false);
                 });
                 });
     }
     }
 
 
-    private Mono<ByCodeGetImportDomainRes> getDomainSetV( Long  groupId, String code,Integer type) {
+    private Mono<ByCodeGetImportDomainRes> getDomainSetV( Long  groupId, String code,Integer type,Boolean isFri) {
         return template.select(Query.query(Criteria.where("group_type_id").is(groupId)
         return template.select(Query.query(Criteria.where("group_type_id").is(groupId)
                 .and("status").is(1)
                 .and("status").is(1)
                 .and("type").is(type)
                 .and("type").is(type)
@@ -193,11 +202,13 @@ public class OtherServicesImpl implements   OtherServicesInterface {
                     if(!f2.isEmpty()){
                     if(!f2.isEmpty()){
                         DomainSelect domainSelect = f2.get(RandomUtil.randomInt(0, f2.size()));
                         DomainSelect domainSelect = f2.get(RandomUtil.randomInt(0, f2.size()));
                         stringBuilder.append("http://");
                         stringBuilder.append("http://");
-                        stringBuilder.append(get6Str());
+                        stringBuilder.append(get6Str(code));
                         stringBuilder.append(".");
                         stringBuilder.append(".");
                         stringBuilder.append(domainSelect.domain());
                         stringBuilder.append(domainSelect.domain());
                         if(2==type){
                         if(2==type){
                             stringBuilder.append("?code=");
                             stringBuilder.append("?code=");
+                        }else if(isFri) {
+                            stringBuilder.append("/portal-page/index?code=");
                         }else {
                         }else {
                             stringBuilder.append("/index.html?code=");
                             stringBuilder.append("/index.html?code=");
                         }
                         }
@@ -213,8 +224,8 @@ public class OtherServicesImpl implements   OtherServicesInterface {
                     return Mono.just(domain);
                     return Mono.just(domain);
                 });
                 });
     }
     }
-    private String get6Str() {
-        return RandomUtil.randomString("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 6);
+    private String get6Str(String code ) {
+        return RandomStr.getRandomStr(code);
     }
     }
 
 
 }
 }

+ 9 - 4
launch-admin/src/main/java/com/webflux/launchadmin/mysql/service/planNew/PlanServiceImpl.java

@@ -56,10 +56,15 @@ public class PlanServiceImpl implements PlanServiceInterface {
                 .limit(limit)
                 .limit(limit)
                 .sort(Sort.by(Sort.Order.desc("created_at"))), PlanNewCommon.class);
                 .sort(Sort.by(Sort.Order.desc("created_at"))), PlanNewCommon.class);
         Mono<List<ListeningPlanNewRes2>> listMono = createdAt.flatMap(f -> {
         Mono<List<ListeningPlanNewRes2>> listMono = createdAt.flatMap(f -> {
-            Mono<String> posterTemplateId = template.selectOne(Query.query(Criteria.where("poster_template_id")
-                            .is(f.posterTemplateId())), PosterTemplate.class).flatMap(f0 -> Mono.just(f0.posterTemplateName()))
-                    .switchIfEmpty(Mono.just(""))
-                    .onErrorResume(throwable -> Mono.error(new Exception("查询海报模版 id:" + f.posterTemplateId() + "error:" + throwable.getMessage())));
+            Mono<String> posterTemplateId ;
+            if(f.type()==8){
+                posterTemplateId=Mono.just("");
+            }else {
+                 posterTemplateId = template.selectOne(Query.query(Criteria.where("poster_template_id")
+                        .is(f.posterTemplateId())), PosterTemplate.class).flatMap(f0 -> Mono.just(f0.posterTemplateName()))
+                        .switchIfEmpty(Mono.just(""))
+                        .onErrorResume(throwable -> Mono.error(new Exception("查询海报模版 id:" + f.posterTemplateId() + "error:" + throwable.getMessage())));
+            }
             Mono<String> id = template.selectOne(Query.query(Criteria.where("id").is(f.groupId())), GroupType.class)
             Mono<String> id = template.selectOne(Query.query(Criteria.where("id").is(f.groupId())), GroupType.class)
                     .flatMap(f1 -> Mono.just(f1.name()))
                     .flatMap(f1 -> Mono.just(f1.name()))
                     .switchIfEmpty(Mono.just(""))
                     .switchIfEmpty(Mono.just(""))

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

@@ -22,6 +22,7 @@ import com.webflux.launchadmin.mysql.service.planNew.structure.GoRequest;
 import com.webflux.launchadmin.mysql.service.planNew.structure.Item;
 import com.webflux.launchadmin.mysql.service.planNew.structure.Item;
 import com.webflux.launchadmin.mysql.service.readBookPlan.ReadBookPlanServicesImpl;
 import com.webflux.launchadmin.mysql.service.readBookPlan.ReadBookPlanServicesImpl;
 import com.webflux.launchadmin.mysql.service.readBookPlan.ReadBookPlanServicesInterface;
 import com.webflux.launchadmin.mysql.service.readBookPlan.ReadBookPlanServicesInterface;
+import com.webflux.launchadmin.utils.RandomStr;
 import com.webflux.launchcommon.returnObj.RStatus;
 import com.webflux.launchcommon.returnObj.RStatus;
 import jakarta.annotation.Resource;
 import jakarta.annotation.Resource;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
@@ -69,6 +70,20 @@ public class GoGenerateService {
             throw new BaseException(e.getMessage() + "body:::" + body + ":::request:::" + temStr);
             throw new BaseException(e.getMessage() + "body:::" + body + ":::request:::" + temStr);
         }
         }
     }
     }
+    public String goGenerateCode(String temStr) {
+        String body = "";
+        String url = "http://172.19.192.16:80/api/image/createImage";
+        try {
+            long ls = System.currentTimeMillis();
+            body = HttpUtil.post(url, temStr, 100000);
+            long le = System.currentTimeMillis();
+            log.info("请求go-createImage 用时:"+(le-ls)+"ms");
+            return body;
+        } catch (Exception e) {
+            log.error("error: body:::" + body + ":::request:::" + temStr + ", url: {}", url, e);
+            throw new BaseException(e.getMessage() + "body:::" + body + ":::request:::" + temStr);
+        }
+    }
 
 
     public String goGenerateStr(String temStr) {
     public String goGenerateStr(String temStr) {
         String body = "";
         String body = "";
@@ -931,7 +946,7 @@ public class GoGenerateService {
                     if (Objects.nonNull(b) && !b.isEmpty()) {
                     if (Objects.nonNull(b) && !b.isEmpty()) {
                         DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
                         DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
                         stringBuilder.append("http://");
                         stringBuilder.append("http://");
-                        stringBuilder.append(get6Str());
+                        stringBuilder.append(get6Str(saveRequest.getCode()));
                         stringBuilder.append(".");
                         stringBuilder.append(".");
                         stringBuilder.append(domainSelect.domain());
                         stringBuilder.append(domainSelect.domain());
                         if (3 == saveRequest.getType() || 4 == saveRequest.getType()) {
                         if (3 == saveRequest.getType() || 4 == saveRequest.getType()) {
@@ -965,7 +980,7 @@ public class GoGenerateService {
                         if (Objects.nonNull(b) && !b.isEmpty()) {
                         if (Objects.nonNull(b) && !b.isEmpty()) {
                             DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
                             DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
                             stringBuilder.append("http://");
                             stringBuilder.append("http://");
-                            stringBuilder.append(get6Str());
+                            stringBuilder.append(get6Str(saveRequest.code()));
                             stringBuilder.append(".");
                             stringBuilder.append(".");
                             stringBuilder.append(domainSelect.domain());
                             stringBuilder.append(domainSelect.domain());
                             stringBuilder.append("/index.html?code=");
                             stringBuilder.append("/index.html?code=");
@@ -995,7 +1010,7 @@ public class GoGenerateService {
                         if (Objects.nonNull(b) && !b.isEmpty()) {
                         if (Objects.nonNull(b) && !b.isEmpty()) {
                             DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
                             DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
                             stringBuilder.append("http://");
                             stringBuilder.append("http://");
-                            stringBuilder.append(get6Str());
+                            stringBuilder.append(get6Str(saveRequest.code()));
                             stringBuilder.append(".");
                             stringBuilder.append(".");
                             stringBuilder.append(domainSelect.domain());
                             stringBuilder.append(domainSelect.domain());
                             if (3 == saveRequest.type() || 4 == saveRequest.type()) {
                             if (3 == saveRequest.type() || 4 == saveRequest.type()) {
@@ -1025,7 +1040,7 @@ public class GoGenerateService {
                         if (Objects.nonNull(b) && !b.isEmpty()) {
                         if (Objects.nonNull(b) && !b.isEmpty()) {
                             DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
                             DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
                             stringBuilder.append("http://");
                             stringBuilder.append("http://");
-                            stringBuilder.append(get6Str());
+                            stringBuilder.append(get6Str(saveRequest.getCode()));
                             stringBuilder.append(".");
                             stringBuilder.append(".");
                             stringBuilder.append(domainSelect.domain());
                             stringBuilder.append(domainSelect.domain());
                             stringBuilder.append("/index.html?code=");
                             stringBuilder.append("/index.html?code=");
@@ -1045,7 +1060,7 @@ public class GoGenerateService {
                                 if (Objects.nonNull(b) && !b.isEmpty()) {
                                 if (Objects.nonNull(b) && !b.isEmpty()) {
                                     DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
                                     DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
                                     stringBuilder.append("http://");
                                     stringBuilder.append("http://");
-                                    stringBuilder.append(get6Str());
+                                    stringBuilder.append(get6Str(saveRequest.getCode()));
                                     stringBuilder.append(".");
                                     stringBuilder.append(".");
                                     stringBuilder.append(domainSelect.domain());
                                     stringBuilder.append(domainSelect.domain());
                                     stringBuilder.append("/index.html?code=");
                                     stringBuilder.append("/index.html?code=");
@@ -1070,7 +1085,7 @@ public class GoGenerateService {
                     if (Objects.nonNull(b) && !b.isEmpty()) {
                     if (Objects.nonNull(b) && !b.isEmpty()) {
                         DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
                         DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
                         stringBuilder.append("http://");
                         stringBuilder.append("http://");
-                        stringBuilder.append(get6Str());
+                        stringBuilder.append(get6Str(a.code()));
                         stringBuilder.append(".");
                         stringBuilder.append(".");
                         stringBuilder.append(domainSelect.domain());
                         stringBuilder.append(domainSelect.domain());
                         stringBuilder.append("/index.html?code=");
                         stringBuilder.append("/index.html?code=");
@@ -1097,7 +1112,7 @@ public class GoGenerateService {
                     if (Objects.nonNull(b) && !b.isEmpty()) {
                     if (Objects.nonNull(b) && !b.isEmpty()) {
                         DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
                         DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
                         stringBuilder.append("http://");
                         stringBuilder.append("http://");
-                        stringBuilder.append(get6Str());
+                        stringBuilder.append(get6Str(a.code()));
                         stringBuilder.append(".");
                         stringBuilder.append(".");
                         stringBuilder.append(domainSelect.domain());
                         stringBuilder.append(domainSelect.domain());
                         stringBuilder.append("/index.html?code=");
                         stringBuilder.append("/index.html?code=");
@@ -1144,7 +1159,7 @@ public class GoGenerateService {
             if (Objects.nonNull(b) && !b.isEmpty()) {
             if (Objects.nonNull(b) && !b.isEmpty()) {
                 DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
                 DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
                 stringBuilder.append("http://");
                 stringBuilder.append("http://");
-                stringBuilder.append(get6Str());
+                stringBuilder.append(get6Str(a.code()));
                 stringBuilder.append(".");
                 stringBuilder.append(".");
                 stringBuilder.append(domainSelect.domain());
                 stringBuilder.append(domainSelect.domain());
                 if (3 == a.type() || 4 ==a.type()) {
                 if (3 == a.type() || 4 ==a.type()) {
@@ -1172,7 +1187,7 @@ public class GoGenerateService {
     private PlanNew getPlanNew() {
     private PlanNew getPlanNew() {
         return new PlanNew(null, null, null, null, null, null, null, null, null, null, null,
         return new PlanNew(null, null, null, null, null, null, null, null, null, null, null,
                 null, null, null, null, null, null, null, null, null, null, null, null, null, null,
                 null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-                null, null, null, null, null, null, null, null, null, null, null, null, null, null,null);
+                null, null, null, null, null, null, null, null, null, null, null, null, null, null,null,null);
     }
     }
 
 
     private ListeningPlanNew getListeningPlanNew() {
     private ListeningPlanNew getListeningPlanNew() {
@@ -1189,7 +1204,7 @@ public class GoGenerateService {
                     if (Objects.nonNull(b) && !b.isEmpty()) {
                     if (Objects.nonNull(b) && !b.isEmpty()) {
                         DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
                         DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
                         stringBuilder.append("http://");
                         stringBuilder.append("http://");
-                        stringBuilder.append(get6Str());
+                        stringBuilder.append(get6Str(a.code()));
                         stringBuilder.append(".");
                         stringBuilder.append(".");
                         stringBuilder.append(domainSelect.domain());
                         stringBuilder.append(domainSelect.domain());
                         stringBuilder.append("/index.html?code=");
                         stringBuilder.append("/index.html?code=");
@@ -1408,7 +1423,7 @@ public class GoGenerateService {
                     if (!f2.isEmpty()) {
                     if (!f2.isEmpty()) {
                         DomainSelect domainSelect = f2.get(RandomUtil.randomInt(0, f2.size()));
                         DomainSelect domainSelect = f2.get(RandomUtil.randomInt(0, f2.size()));
                         stringBuilder.append("http://");
                         stringBuilder.append("http://");
-                        stringBuilder.append(get6Str());
+                        stringBuilder.append(get6Str(code));
                         stringBuilder.append(".");
                         stringBuilder.append(".");
                         stringBuilder.append(domainSelect.domain());
                         stringBuilder.append(domainSelect.domain());
                         if (3 == type || 4==type) {
                         if (3 == type || 4==type) {
@@ -1446,7 +1461,7 @@ public class GoGenerateService {
                                 if (Objects.nonNull(b) && !b.isEmpty()) {
                                 if (Objects.nonNull(b) && !b.isEmpty()) {
                                     DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
                                     DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
                                     stringBuilder.append("http://");
                                     stringBuilder.append("http://");
-                                    stringBuilder.append(get6Str());
+                                    stringBuilder.append(get6Str(a.code()));
                                     stringBuilder.append(".");
                                     stringBuilder.append(".");
                                     stringBuilder.append(domainSelect.domain());
                                     stringBuilder.append(domainSelect.domain());
                                     stringBuilder.append("/index.html?code=");
                                     stringBuilder.append("/index.html?code=");
@@ -1468,8 +1483,8 @@ public class GoGenerateService {
         return stringBuilderMono;
         return stringBuilderMono;
     }
     }
 
 
-    private String get6Str() {
-        String string = RandomUtil.randomString("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 6);
+    private String get6Str(String code ) {
+        String string = RandomStr.getRandomStr(code);
         return string;
         return string;
     }
     }
     public String get7Str() {
     public String get7Str() {

+ 6 - 6
launch-admin/src/main/java/com/webflux/launchadmin/mysql/service/readBookPlan/ReadBookPlanServicesImpl.java

@@ -22,6 +22,8 @@ import com.webflux.launchadmin.mysql.service.planNew.goGenerate.GoGenerateServic
 import com.webflux.launchadmin.mysql.service.planNew.structure.GoRequest;
 import com.webflux.launchadmin.mysql.service.planNew.structure.GoRequest;
 import com.webflux.launchadmin.mysql.service.planNew.structure.Item;
 import com.webflux.launchadmin.mysql.service.planNew.structure.Item;
 import com.webflux.launchadmin.mysql.service.readBookPlan.data.AvatarInfo;
 import com.webflux.launchadmin.mysql.service.readBookPlan.data.AvatarInfo;
+import com.webflux.launchadmin.utils.RandomStr;
+import com.webflux.launchcommon.utils.StringUtils;
 import jakarta.annotation.Resource;
 import jakarta.annotation.Resource;
 import lombok.Data;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
@@ -299,7 +301,7 @@ public class ReadBookPlanServicesImpl implements ReadBookPlanServicesInterface{
 
 
     public Boolean setNicknameAndHead(String wxExternalUserid,GoRequest goRequest) {
     public Boolean setNicknameAndHead(String wxExternalUserid,GoRequest goRequest) {
         List<Item> collect = goRequest.getItem().stream().filter(fc -> "nickname".equals(fc.getT()) || "head".equals(fc.getT())).collect(Collectors.toList());
         List<Item> collect = goRequest.getItem().stream().filter(fc -> "nickname".equals(fc.getT()) || "head".equals(fc.getT())).collect(Collectors.toList());
-        if (!collect.isEmpty()) {
+        if (!collect.isEmpty() && Objects.nonNull(wxExternalUserid) && StringUtils.isNotEmpty(wxExternalUserid) ) {
             AvatarInfo avatarByWxUid = getAvatarByWxUid(wxExternalUserid);
             AvatarInfo avatarByWxUid = getAvatarByWxUid(wxExternalUserid);
             collect.forEach(item -> {
             collect.forEach(item -> {
                 if(item.getT().equals("nickname")){
                 if(item.getT().equals("nickname")){
@@ -504,7 +506,7 @@ public class ReadBookPlanServicesImpl implements ReadBookPlanServicesInterface{
                     if (Objects.nonNull(b) && !b.isEmpty()) {
                     if (Objects.nonNull(b) && !b.isEmpty()) {
                         DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
                         DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
                         stringBuilder.append("http://");
                         stringBuilder.append("http://");
-                        stringBuilder.append(get6Str());
+                        stringBuilder.append(get6Str(a.code()));
                         stringBuilder.append(".");
                         stringBuilder.append(".");
                         stringBuilder.append(domainSelect.domain());
                         stringBuilder.append(domainSelect.domain());
                         stringBuilder.append("/index.html?code=");
                         stringBuilder.append("/index.html?code=");
@@ -519,10 +521,8 @@ public class ReadBookPlanServicesImpl implements ReadBookPlanServicesInterface{
         );
         );
     }
     }
 
 
-
-
-    private String get6Str() {
-        return RandomUtil.randomString("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 6);
+    private String get6Str(String code) {
+        return RandomStr.getRandomStr(code);
     }
     }
     public String goGenerateStr(String temStr){
     public String goGenerateStr(String temStr){
         String body="";
         String body="";

+ 35 - 6
launch-admin/src/main/java/com/webflux/launchadmin/mysql/service/sourceMaterial/materialManagement/MaterialManagementImpl.java

@@ -2,8 +2,10 @@ package com.webflux.launchadmin.mysql.service.sourceMaterial.materialManagement;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONArray;
 import cn.hutool.json.JSONArray;
 import cn.hutool.json.JSONUtil;
 import cn.hutool.json.JSONUtil;
+import com.alibaba.fastjson.JSONObject;
 import com.webflux.launchadmin.config.BaseContextHandler;
 import com.webflux.launchadmin.config.BaseContextHandler;
 import com.webflux.launchadmin.global.BaseException;
 import com.webflux.launchadmin.global.BaseException;
+import com.webflux.launchadmin.mysql.controller.planNew.res.AlbumDataRes;
 import com.webflux.launchadmin.mysql.controller.sourceMaterial.data.BackgroupGroup.*;
 import com.webflux.launchadmin.mysql.controller.sourceMaterial.data.BackgroupGroup.*;
 import com.webflux.launchadmin.mysql.controller.sourceMaterial.data.album.AlbumDto;
 import com.webflux.launchadmin.mysql.controller.sourceMaterial.data.album.AlbumDto;
 import com.webflux.launchadmin.mysql.controller.sourceMaterial.data.album.AlbumItemReq;
 import com.webflux.launchadmin.mysql.controller.sourceMaterial.data.album.AlbumItemReq;
@@ -29,6 +31,7 @@ import com.webflux.launchcommon.returnObj.Paged;
 import com.webflux.launchcommon.returnObj.RStatus;
 import com.webflux.launchcommon.returnObj.RStatus;
 import com.webflux.launchcommon.utils.StringUtils;
 import com.webflux.launchcommon.utils.StringUtils;
 import jakarta.annotation.Resource;
 import jakarta.annotation.Resource;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
@@ -51,6 +54,7 @@ import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 @Service
 @Service
+@Slf4j
 public class MaterialManagementImpl implements MaterialManagementInterface {
 public class MaterialManagementImpl implements MaterialManagementInterface {
     @Resource
     @Resource
     private SourceMaterialInterface sourceMaterialInterface;
     private SourceMaterialInterface sourceMaterialInterface;
@@ -493,7 +497,7 @@ public class MaterialManagementImpl implements MaterialManagementInterface {
     @Transactional
     @Transactional
     public Mono<RStatus<Boolean>> addOrUpdate(AlbumReq albumReq) {
     public Mono<RStatus<Boolean>> addOrUpdate(AlbumReq albumReq) {
         List<AlbumItemReq> list = albumReq.getList();
         List<AlbumItemReq> list = albumReq.getList();
-        return Objects.isNull(albumReq.getAlbumId())?
+        return Objects.isNull(albumReq.getAlbumId()) || 0==albumReq.getAlbumId() ?
                 addAlbum(albumReq,BaseContextHandler.getUserName(),BaseContextHandler.getUserId(),list)
                 addAlbum(albumReq,BaseContextHandler.getUserName(),BaseContextHandler.getUserId(),list)
                 :updateAlbum(albumReq, list);
                 :updateAlbum(albumReq, list);
     }
     }
@@ -505,7 +509,7 @@ public class MaterialManagementImpl implements MaterialManagementInterface {
             albumReq.setGroupId(album.groupId());
             albumReq.setGroupId(album.groupId());
             albumReq.setHeadUrl(album.headUrl());
             albumReq.setHeadUrl(album.headUrl());
             albumReq.setGroupId(album.groupId());
             albumReq.setGroupId(album.groupId());
-            albumReq.setUserName(album.groupName());
+            albumReq.setUserName(album.userName());
             String s = album.imageListId();
             String s = album.imageListId();
             Mono<List<AlbumItemReq>> listMono = Mono.just(List.of());
             Mono<List<AlbumItemReq>> listMono = Mono.just(List.of());
             if (StringUtils.isNotEmpty(s)) {
             if (StringUtils.isNotEmpty(s)) {
@@ -546,10 +550,33 @@ public class MaterialManagementImpl implements MaterialManagementInterface {
         });
         });
         return RStatus.success(booleanMono);
         return RStatus.success(booleanMono);
     }
     }
+
+    @Override
+    public Mono<AlbumDataRes> infoOut(Long[] ids) {
+        if (Objects.isNull(ids) || ids.length == 0) {
+            return Mono.error(new BaseException("请求参数异常"));
+        }
+        return Flux.fromIterable(List.of(ids)).flatMap(this::infoAlbum).collectList().flatMap(list -> {
+            AlbumDataRes albumDataRes = new AlbumDataRes();
+            albumDataRes.setAlbumList(list);
+            return Mono.just(albumDataRes);
+        });
+    }
+
     private Mono<RStatus<Boolean>> addAlbum(AlbumReq albumReq, String userName, String userId, List<AlbumItemReq> list) {
     private Mono<RStatus<Boolean>> addAlbum(AlbumReq albumReq, String userName, String userId, List<AlbumItemReq> list) {
-        Mono<Boolean> then = Flux.fromIterable(list).flatMap(item -> albumItemRepository
-                .save(new AlbumItem(null, item.getUrl(), item.getStatus()))
-                .flatMap(albumItemInterface::saveMysqlAndRedisCache))
+        Mono<Boolean> then = Flux.fromIterable(list).flatMap(item ->
+                {
+                    AlbumItem albumItem = new AlbumItem(null, item.getUrl(), item.getStatus());
+                    return //albumItemRepository.save(albumItem)
+                              template.insert(albumItem)
+                            //albumItemRepository.save(new AlbumItem(null, item.getUrl(), item.getStatus()))
+                            .flatMap(f->{
+                                return albumItemInterface.saveMysqlAndRedisCache(f.id(),f)
+                                        .onErrorResume(throwable ->
+                                                Mono.error(new BaseException("cache-"+throwable.getMessage()+"------"+f.id())));
+                            });
+                }
+        )
                 .collectList()
                 .collectList()
                 .switchIfEmpty(Mono.just(List.of()))
                 .switchIfEmpty(Mono.just(List.of()))
                 .flatMap(items -> {
                 .flatMap(items -> {
@@ -581,7 +608,9 @@ public class MaterialManagementImpl implements MaterialManagementInterface {
             }
             }
             return then.then(Flux.fromIterable(list).flatMap(item -> albumItemRepository
             return then.then(Flux.fromIterable(list).flatMap(item -> albumItemRepository
                     .save(new AlbumItem(null, item.getUrl(), item.getStatus()))
                     .save(new AlbumItem(null, item.getUrl(), item.getStatus()))
-                    .flatMap(albumItemInterface::saveMysqlAndRedisCache))
+                    .flatMap(f->{
+                      return   albumItemInterface.saveMysqlAndRedisCache(f.id(),f);
+                    }))
                     .collectList().switchIfEmpty(Mono.just(List.of()))
                     .collectList().switchIfEmpty(Mono.just(List.of()))
                     .flatMap(items -> {
                     .flatMap(items -> {
                         Album albumNew = new Album(albumReq.getAlbumId(),
                         Album albumNew = new Album(albumReq.getAlbumId(),

+ 3 - 0
launch-admin/src/main/java/com/webflux/launchadmin/mysql/service/sourceMaterial/materialManagement/MaterialManagementInterface.java

@@ -1,5 +1,6 @@
 package com.webflux.launchadmin.mysql.service.sourceMaterial.materialManagement;
 package com.webflux.launchadmin.mysql.service.sourceMaterial.materialManagement;
 
 
+import com.webflux.launchadmin.mysql.controller.planNew.res.AlbumDataRes;
 import com.webflux.launchadmin.mysql.controller.planNew.res.BackgroupImageRes;
 import com.webflux.launchadmin.mysql.controller.planNew.res.BackgroupImageRes;
 import com.webflux.launchadmin.mysql.controller.sourceMaterial.data.BackgroupGroup.*;
 import com.webflux.launchadmin.mysql.controller.sourceMaterial.data.BackgroupGroup.*;
 import com.webflux.launchadmin.mysql.controller.sourceMaterial.data.album.AlbumDto;
 import com.webflux.launchadmin.mysql.controller.sourceMaterial.data.album.AlbumDto;
@@ -74,4 +75,6 @@ public interface MaterialManagementInterface {
     Mono<AlbumReq> infoAlbum(Long id);
     Mono<AlbumReq> infoAlbum(Long id);
 
 
     Mono<RStatus<Boolean>> deleteAlbum(Long id);
     Mono<RStatus<Boolean>> deleteAlbum(Long id);
+
+    Mono<AlbumDataRes> infoOut(Long[] id);
 }
 }

+ 2 - 2
launch-admin/src/main/java/com/webflux/launchadmin/mysql/service/sourceMaterial/materialManagement/redisCache/AlbumItemService.java

@@ -21,8 +21,8 @@ public class AlbumItemService implements AlbumItemInterface {
     private AlbumItemRepository albumItemRepository;
     private AlbumItemRepository albumItemRepository;
 
 
     @Override
     @Override
-    @CachePut(cacheNames = MaterialManagementRedisKey.ALBUMITEM, key = "#albumItem.id")
-    public Mono<AlbumItem> saveMysqlAndRedisCache(AlbumItem albumItem) {
+    @CachePut(cacheNames = MaterialManagementRedisKey.ALBUMITEM, key = "#id")
+    public Mono<AlbumItem> saveMysqlAndRedisCache(Long id,AlbumItem albumItem) {
         return Mono.just(albumItem);
         return Mono.just(albumItem);
     }
     }
 
 

+ 1 - 1
launch-admin/src/main/java/com/webflux/launchadmin/mysql/service/sourceMaterial/materialManagement/redisCache/AlbumService.java

@@ -21,7 +21,7 @@ public class AlbumService implements AlbumInterface {
     private AlbumRepository albumRepository;
     private AlbumRepository albumRepository;
 
 
     @Override
     @Override
-    @CachePut(cacheNames = MaterialManagementRedisKey.ALBUM, key = "#album.albumId")
+    @CachePut(cacheNames = MaterialManagementRedisKey.ALBUM, key = "#album.albumId()")
     public Mono<Album> saveMysqlAndRedisCache(Album album) {
     public Mono<Album> saveMysqlAndRedisCache(Album album) {
         return Mono.just(album);
         return Mono.just(album);
     }
     }

+ 2 - 2
launch-admin/src/main/java/com/webflux/launchadmin/mysql/service/sourceMaterial/materialManagement/redisCache/BackgroupImageItemService.java

@@ -16,13 +16,13 @@ public class BackgroupImageItemService implements BackgroupImageItemInterface {
     private BackgroupImageItemRepository backgroupImageItem;
     private BackgroupImageItemRepository backgroupImageItem;
 
 
     @Override
     @Override
-    @CachePut(cacheNames = MaterialManagementRedisKey.BACKGROUPIMAGEITEM, key = "#backgroupImageItem.id")
+    @CachePut(cacheNames = MaterialManagementRedisKey.BACKGROUPIMAGEITEM, key = "#backgroupImageItem.id()")
     public Mono<BackgroupImageItem> saveMysqlAndRedisBackgroupImageCache(BackgroupImageItem backgroupImageItem) {
     public Mono<BackgroupImageItem> saveMysqlAndRedisBackgroupImageCache(BackgroupImageItem backgroupImageItem) {
         return Mono.just(backgroupImageItem);
         return Mono.just(backgroupImageItem);
     }
     }
     // 删除缓存
     // 删除缓存
     @Override
     @Override
-    @CacheEvict(cacheNames = MaterialManagementRedisKey.BACKGROUPIMAGEITEM, key = "#backgroupImageItem.id")
+    @CacheEvict(cacheNames = MaterialManagementRedisKey.BACKGROUPIMAGEITEM, key = "#backgroupImageItem.id()")
     public Mono<BackgroupImageItem> deleteMysqlAndRedisBackgroupImageCache(BackgroupImageItem backgroupImageItem) {
     public Mono<BackgroupImageItem> deleteMysqlAndRedisBackgroupImageCache(BackgroupImageItem backgroupImageItem) {
         return Mono.just(backgroupImageItem);
         return Mono.just(backgroupImageItem);
     }
     }

+ 2 - 2
launch-admin/src/main/java/com/webflux/launchadmin/mysql/service/sourceMaterial/materialManagement/redisCache/BackgroupImageService.java

@@ -18,13 +18,13 @@ public class BackgroupImageService implements BackgroupImageInterface {
     private BackgroupImageRepository backgroupImageRepository;
     private BackgroupImageRepository backgroupImageRepository;
 
 
     @Override
     @Override
-    @CachePut(cacheNames = MaterialManagementRedisKey.BACKGROUPIMAGE, key = "#backgroupImage.id")
+    @CachePut(cacheNames = MaterialManagementRedisKey.BACKGROUPIMAGE, key = "#backgroupImage.id()")
     public Mono<BackgroupImage> saveMysqlAndRedisBackgroupImageCache(BackgroupImage backgroupImage) {
     public Mono<BackgroupImage> saveMysqlAndRedisBackgroupImageCache(BackgroupImage backgroupImage) {
         return Mono.just(backgroupImage);
         return Mono.just(backgroupImage);
     }
     }
 
 
     // 删除缓存
     // 删除缓存
-    @CacheEvict(cacheNames = MaterialManagementRedisKey.BACKGROUPIMAGE, key = "#backgroupImage.id")
+    @CacheEvict(cacheNames = MaterialManagementRedisKey.BACKGROUPIMAGE, key = "#backgroupImage.id()")
     public Mono<BackgroupImage> deleteMysqlAndRedisBackgroupImageCache(BackgroupImage backgroupImage) {
     public Mono<BackgroupImage> deleteMysqlAndRedisBackgroupImageCache(BackgroupImage backgroupImage) {
         return Mono.just(backgroupImage);
         return Mono.just(backgroupImage);
     }
     }

+ 1 - 1
launch-admin/src/main/java/com/webflux/launchadmin/mysql/service/sourceMaterial/materialManagement/redisCache/interfacelist/AlbumItemInterface.java

@@ -5,7 +5,7 @@ import com.webflux.launchadmin.mysql.entity.sourceMaterial.AlbumItem;
 import reactor.core.publisher.Mono;
 import reactor.core.publisher.Mono;
 
 
 public interface AlbumItemInterface {
 public interface AlbumItemInterface {
-    Mono<AlbumItem> saveMysqlAndRedisCache(AlbumItem albumItem);
+    Mono<AlbumItem> saveMysqlAndRedisCache(Long id,AlbumItem albumItem);
     Mono<Void> deleteMysqlAndRedisCache(Long id);
     Mono<Void> deleteMysqlAndRedisCache(Long id);
     Mono<AlbumItem> getRedisOrMysql(Long id);
     Mono<AlbumItem> getRedisOrMysql(Long id);
 }
 }

+ 22 - 0
launch-admin/src/main/java/com/webflux/launchadmin/utils/RandomStr.java

@@ -0,0 +1,22 @@
+package com.webflux.launchadmin.utils;
+
+import cn.hutool.core.util.RandomUtil;
+
+import java.util.List;
+import java.util.Objects;
+
+public  class RandomStr {
+    private   static final List<String> list1 = List.of("07e3138d92454920b975c5a07d8c0e17", "835c9959339f495d921d6555c03aa6dc","057ef6fddb394f7080350bd9237575ba");
+    private   static final List<String> list2 = List.of("weixin.qq.com", "baidu.com", "sina.com", "qq.com", "apple.com.cn", "apple.com", "huawei.com", "mi.com", "jd.com");
+    private  static  final  String RandomString="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
+    public static String getRandomStr(String code){
+        if(Objects.isNull(code)||!list1.contains(code)){
+            return RandomUtil.randomString(RandomString, 7);
+        }else {
+            String s = list2.get(RandomUtil.randomInt(0, list2.size()));
+            String string = RandomUtil.randomString(RandomString, 6);
+            return s+"."+string;
+        }
+
+    }
+}