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

feat: 交友裂变H5

# Conflicts:
#	launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/planNew/PlanNewCommonOutController.java
#	launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/planNew/req/PlanNewCommonShareReq.java
#	launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/planNew/res/PlanNewCommonShareRes.java
wangcheng 2 лет назад
Родитель
Сommit
d49e1d2842

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

@@ -0,0 +1,20 @@
+package com.webflux.launchadmin.mysql.controller.planNew.req;
+
+import lombok.Data;
+
+/**
+ * H5域名查询请求体
+ *
+ * @author: wangcheng
+ * @date: 2024/7/10 15:13
+ */
+@Data
+public class OutDomainRequest {
+    private String code;
+    /** 计划类型 1.加群计划 2.听书计划 3.交友计划  */
+    private Integer typePlan;
+    /** 域名类型 1是入口域名,2是落地页域名,4是分享背景组域名,5是中转页域名 */
+    private Integer type;
+    /** 落地页域名 */
+    private String landingPageDomain;
+}

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

@@ -0,0 +1,22 @@
+package com.webflux.launchadmin.mysql.controller.planNew.req;
+
+import lombok.Data;
+
+/**
+ * H5通用计划素材请求体
+ *
+ * @author: wangcheng
+ * @date: 2024/7/10 17:59
+ */
+@Data
+public class PlanNewCommonMaterialReq {
+    private String code;
+    /** 群音频id */
+    private Long audioId;
+    /** 返回音频id */
+    private Long retAudioId;
+    /** 返回广告 */
+    private Long returnLoopId;
+    /** 分享背景组id */
+    private Long backgroundGroupId;
+}

+ 9 - 6
launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/planNew/res/DomainSelectRes.java

@@ -2,21 +2,24 @@ package com.webflux.launchadmin.mysql.controller.planNew.res;
 
 
 import lombok.Data;
 import lombok.Data;
 
 
+/**
+ * @author moka
+ */
 @Data
 @Data
 public class DomainSelectRes {
 public class DomainSelectRes {
-   private String domain ;
-    private String path ;
-    private String unique ;
+    private String domain;
+    private String path;
+    private String unique;
     /**
     /**
      * 中转页域名
      * 中转页域名
      */
      */
-    private String transferPageDomain;//中转页域名
+    private String transferPageDomain;
     /**
     /**
      * 中转页开关 1:true 0:F
      * 中转页开关 1:true 0:F
      */
      */
-    private Integer transferPageBl; //中转页开关 1:true 0:F
+    private Integer transferPageBl;
     /**
     /**
      * 背景组域名
      * 背景组域名
      */
      */
-    private String backgroupDomain;//背景组域名
+    private String backgroupDomain;
 }
 }

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

@@ -0,0 +1,17 @@
+package com.webflux.launchadmin.mysql.controller.planNew.res;
+
+import lombok.Data;
+
+/**
+ * 群成员返回体
+ *
+ * @author: wangcheng
+ * @date: 2024/7/10 15:55
+ */
+@Data
+public class GroupUserRes {
+    /** 头像 */
+    String userHead;
+    /** 昵称 */
+    String userNickname;
+}

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

@@ -0,0 +1,36 @@
+package com.webflux.launchadmin.mysql.controller.planNew.res;
+
+import com.webflux.launchadmin.mysql.entity.planNew.Audio;
+import com.webflux.launchadmin.mysql.entity.planNew.ReturnLoop;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * H5通用计划素材返回体
+ *
+ * @author: wangcheng
+ * @date: 2024/7/10 18:07
+ */
+@Data
+public class PlanNewCommonMaterialRes {
+    /**
+     * 群音频
+     */
+    private Audio groupAudio;
+
+    /**
+     * 返回音频
+     */
+    private Audio retAudio;
+
+    /**
+     * 返回广告
+     */
+    private ReturnLoop returnLoop;
+
+    /**
+     * 分享背景组
+     */
+    private List<String> shareUrls;
+}

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

@@ -0,0 +1,31 @@
+package com.webflux.launchadmin.mysql.controller.planNew.res;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 通用计划配置返回体
+ *
+ * @author: wangcheng
+ * @date: 2024/7/10 15:50
+ */
+@Data
+public class PlanNewCommonRes {
+    private String id;
+    private String name;
+    private String code;
+    /** 计划类型(1加群裂变 2听书裂变 3交友裂变) */
+    private Integer type;
+    /** 分类id  */
+    private Long groupId;
+    /** 海报id */
+    private Long posterTemplateId;
+    /** 入口域名 */
+    private String importDomain;
+    private String configJson;
+    /** 群成员列表 */
+    private List<GroupUserRes> groupUserList;
+    /** 群信息 */
+    private List<H5ImageAndText> groupImageAndTextList;
+}

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

@@ -789,6 +789,37 @@ public class GoGenerateService {
                     });
                     });
         });
         });
     }
     }
+
+    public Mono<StringBuilder> getOutImportDomainCommon(Mono<PlanNewCommon> mono) {
+        return mono.flatMap(saveRequest -> {
+            if (Objects.isNull(saveRequest.importDomain()) || saveRequest.importDomain().isEmpty()) {
+                throw new BaseException("入口页域名值不可为空");
+            }
+            return template.select(Query.query(Criteria.where("group_type_id").is(saveRequest.importDomain())
+                            .and("status").is(1)
+                            .and("type").is(1)
+                            .and("deleted_at").isNull()), DomainSelect.class)
+                    .collectList()
+                    .switchIfEmpty(Mono.just(List.of())).flatMap(b -> {
+                        StringBuilder stringBuilder = new StringBuilder();
+                        if (Objects.nonNull(b) && !b.isEmpty()) {
+                            DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
+                            stringBuilder.append("http://");
+                            stringBuilder.append(get6Str());
+                            stringBuilder.append(".");
+                            stringBuilder.append(domainSelect.domain());
+                            stringBuilder.append("/index.html?code=");
+                            stringBuilder.append(saveRequest.code());
+                            stringBuilder.append("&sk=");
+                            stringBuilder.append(IdUtil.fastSimpleUUID());
+                        } else {
+                            throw new BaseException("通过入口页域名值查询域名返回结果为空");
+                        }
+                        return Mono.just(stringBuilder);
+                    });
+        });
+    }
+
     public Mono<StringBuilder> getStringBuilderMono(PlanReq saveRequest) {
     public Mono<StringBuilder> getStringBuilderMono(PlanReq saveRequest) {
         if (Objects.isNull(saveRequest.getPlanNewId()) || "".equals(saveRequest.getPlanNewId())) {
         if (Objects.isNull(saveRequest.getPlanNewId()) || "".equals(saveRequest.getPlanNewId())) {
            return template.select(Query.query(Criteria.where("group_type_id").is(saveRequest.getGroupId())
            return template.select(Query.query(Criteria.where("group_type_id").is(saveRequest.getGroupId())