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

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

@@ -349,6 +349,8 @@ public class PlanNewController {
      */
     @PostMapping("savePlan")
     public Mono<RStatus<PlanNew>> savePlan(@RequestBody PlanReq saveRequest){
+        String userName = BaseContextHandler.getUserName();
+        String userId = BaseContextHandler.getUserId();
         saveRequest.setCode(IdUtil.fastSimpleUUID());
         Long posterTemplateId = saveRequest.getPosterTemplateId();
         Mono<String> stringMono1 = template
@@ -366,9 +368,13 @@ public class PlanNewController {
                             saveRequest);
                     return stringMono;
                 });
-        String userName = BaseContextHandler.getUserName();
-        String userId = BaseContextHandler.getUserId();
-        Mono<PlanNew> insert = stringMono1.flatMap(ff -> {
+        Mono<StringBuilder> stringBuilderMono ;
+        if(saveRequest.getRedirectType()==2){
+           stringBuilderMono =Mono.just(new StringBuilder()); //goGenerateService.byPlanNewIdGetUrl(saveRequest.getRedirectPlanId());
+        }else {
+            stringBuilderMono=Mono.just(new StringBuilder(saveRequest.getLink()));
+        }
+    Mono<PlanNew> insert = Mono.zip(stringMono1, stringBuilderMono).flatMap(f->{
             PlanNew plan = new PlanNew(null,
                     saveRequest.getName(),
                     userName,
@@ -385,7 +391,7 @@ public class PlanNewController {
                     saveRequest.getCount(),
                     saveRequest.getListAudioId(),
                     saveRequest.getRetAudioId(),
-                    saveRequest.getLink(),
+                    f.getT2().toString(),
                     saveRequest.getIsAddQun(),
                     saveRequest.getBackgroundGroupId(),
                     saveRequest.getHomePageId(),
@@ -398,10 +404,14 @@ public class PlanNewController {
                     saveRequest.getReturnLoopBl(),
                     saveRequest.getGroupIdQs(),
                     saveRequest.getBaiduDot(),
-                    saveRequest.getBackgroundGroupIdNewAdd(), ff
+                    saveRequest.getBackgroundGroupIdNewAdd(),
+                    f.getT1(),
+                    saveRequest.getRedirectType(),
+                    saveRequest.getRedirectPlanId()
             );
             return template.insert(plan);
-        });
+
+    });
         Mono<PlanNew> map = insert.map(f -> {
             List<ServiceGroupSettingItemRequest> backgroupFxSetting = saveRequest.getBackgroupFxSetting();
             backgroupFxSetting.forEach(fx -> {
@@ -463,8 +473,17 @@ public class PlanNewController {
                     return stringMono;
                 });
         Mono<PlanNew> plan_new_id1 = template.selectOne(Query.query(Criteria.where("plan_new_id").is(saveRequest.getPlanNewId())), PlanNew.class);
-        Mono<PlanNew> plan_new_id = Mono.zip(stringMono1, plan_new_id1, (url, map) -> {
-            PlanNew planNew = new PlanNew(saveRequest.getPlanNewId(),
+
+        Mono<StringBuilder> stringBuilderMono ;
+        if(saveRequest.getRedirectType()==2){
+            stringBuilderMono = Mono.just(new StringBuilder(""));//goGenerateService.byPlanNewIdGetUrl(saveRequest.getRedirectPlanId());
+        }else {
+            stringBuilderMono=Mono.just(new StringBuilder(saveRequest.getLink()));
+        }
+        Mono<PlanNew> planNewMono = Mono.zip(stringMono1, plan_new_id1, stringBuilderMono).flatMap(f -> {
+            PlanNew map = f.getT2();
+            PlanNew planNew = new PlanNew(
+                    saveRequest.getPlanNewId(),
                     saveRequest.getName(),
                     map.createUser(),
                     map.createId(),
@@ -480,7 +499,7 @@ public class PlanNewController {
                     saveRequest.getCount(),
                     saveRequest.getListAudioId(),
                     saveRequest.getRetAudioId(),
-                    saveRequest.getLink(),
+                    f.getT3().toString(),
                     saveRequest.getIsAddQun(),
                     saveRequest.getBackgroundGroupId(),
                     saveRequest.getHomePageId(),
@@ -493,11 +512,15 @@ public class PlanNewController {
                     saveRequest.getReturnLoopBl(),
                     saveRequest.getGroupIdQs(),
                     saveRequest.getBaiduDot(),
-                    saveRequest.getBackgroundGroupIdNewAdd(), url);
-            return planNew;
+                    saveRequest.getBackgroundGroupIdNewAdd(),
+                    f.getT1(),
+                    saveRequest.getRedirectType(),
+                    saveRequest.getRedirectPlanId()
+            );
+            return Mono.just(planNew);
         }).flatMap(template::update);
 
-        Mono<PlanNew> map = plan_new_id.map(f->{
+        Mono<PlanNew> map = planNewMono.map(f->{
             template.delete(Query.query(Criteria.where("plan_new_id").is(f.planNewId())),PlanNewBackgroupPoster.class).subscribe();
             return f;
         }).map(f -> {
@@ -570,7 +593,9 @@ public class PlanNewController {
                         saveRequest.groupIdQs(),
                         saveRequest.baiduDot(),
                         saveRequest.backgroundGroupIdNewAdd(),
-                        saveRequest.previewUrl()
+                        saveRequest.previewUrl(),
+                        saveRequest.redirectType(),
+                        saveRequest.redirectPlanId()
                 )).flatMap(map -> {
                     System.out.println(map.createUser());
                     System.out.println(JSONUtil.toJsonStr(map));
@@ -603,6 +628,25 @@ public class PlanNewController {
 
 
     /**
+     * 计划列表-下拉(查看自己创建的)(V2.0)
+     * @param request
+     * @return {@link Mono}<{@link RStatus}<{@link Paged}<{@link PlanNew}>>>
+     */
+    @PostMapping("planSelectSelf")
+    public Mono<RStatus<List<PlanNew>>> planSelectSelf(@RequestBody PosterTemSelectSelf request)   {
+
+        if (Objects.isNull(request.getUserId())) {
+            request.setUserId( BaseContextHandler.getUserId());
+        }
+        Criteria criteria= Criteria.where("create_id").is(request.getUserId()) ; //poster_template_id
+        if (Objects.nonNull(request.getName()) && "" != request.getName()) {
+            criteria = criteria.and("name").like("%"+request.getName()+"%");
+        }
+        Mono<List<PlanNew>> listMono = template.select(Query.query(criteria), PlanNew.class).collectList();
+        return RStatus.successList(listMono);
+    }
+
+    /**
      * 计划列表-下拉
      * @param request
      * @return {@link Mono}<{@link RStatus}<{@link Paged}<{@link PlanNew}>>>

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

@@ -269,6 +269,7 @@ public class PlanNewOutController {
         return new ReturnLoop(-1L, null, null, null, null, null, null, null, null, null, null, null, null, null);
     }
 
+
     /**
      * h5-通过code (第二个接口)
      * @param request
@@ -286,8 +287,16 @@ public class PlanNewOutController {
         }
         Mono<PlanNew> code0 = template.selectOne(Query.query(Criteria.where("code").is(request.getCode())), PlanNew.class);
         Mono<DataLists0> dataLists0Mono =  code0.flatMap(ftmp->{
+            //(如果wx_user_id值不为空则使用清水分类)
+            Mono<StringBuilder> stringBuilderMono;
+            if (Objects.nonNull(ftmp.redirectType()) && ftmp.redirectType() == 2) {
+                 stringBuilderMono =  goGenerateService.byPlanNewIdGetUrl(ftmp.redirectPlanId(),
+                         Objects.nonNull(request.getWx_user_id()) && !"".equals(request.getWx_user_id()));
+            }else {
+                stringBuilderMono =Mono.just(new StringBuilder(ftmp.link()));
+            }
             Mono<PlanNew> code = Mono.just(ftmp);
-            return  Mono.zip(code, getPoster_template_id(code), getPoster(code), getPlanNewBackgroupPoster(code),getEwm(request, code)).flatMap(f -> {
+            return  Mono.zip(code, getPoster_template_id(code), getPoster(code), getPlanNewBackgroupPoster(code),getEwm(request, code),stringBuilderMono).flatMap(f -> {
                 DataLists0 dataLists0 = new DataLists0();
                 dataLists0.setSpare(f.getT5().toString());
                 dataLists0.setPlanNew(f.getT1());
@@ -309,7 +318,7 @@ public class PlanNewOutController {
                             Integer userVisits = request.getUserVisits();
                             int v =userVisits%qs.size();
                             dataLists0.setQsSetting(qs.get(v));
-                            dataLists0.setLink(dataLists0.getPlanNew().link());
+                            dataLists0.setLink(f.getT6().toString());
                         }else {
                             dataLists0.setQsSetting(qs.get(request.getUserVisits()));
                             dataLists0.setLink(null);
@@ -327,7 +336,7 @@ public class PlanNewOutController {
                             Integer userVisits = request.getUserVisits();
                             int v =userVisits%fx.size();
                             dataLists0.setFxSetting(fx.get(v));
-                            dataLists0.setLink(dataLists0.getPlanNew().link());
+                            dataLists0.setLink(f.getT6().toString());
                         }else {
                             dataLists0.setLink(null);
                             dataLists0.setFxSetting(fx.get(request.getUserVisits()));

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

@@ -101,13 +101,22 @@ public class PlanReq {
 
     private String  baiduDot;
 
+    /**
+     * 入群方式 // 1三方链接 2计划链接
+     */
+    @NotNull
+    private  Integer redirectType;
+    /**
+     * 选择计划
+     */
+    private  Long redirectPlanId;
+
 
     /**
      * 分享背景组id
      */
     private Long backgroundGroupIdNewAdd;
 
-
     /**
      * 分享背景组-配置
      */

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

@@ -0,0 +1,20 @@
+package com.webflux.launchadmin.mysql.controller.planNew.req;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+@Data
+public class PosterTemSelectSelf {
+
+
+    /**
+     * 模版名
+     */
+    private String name;
+    /**
+     * 用户Id
+     */
+    @NotNull
+    private String userId;
+
+
+}

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

@@ -1,8 +1,11 @@
 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.time.ZonedDateTime;
+
 @Table("domain")
 public record DomainSelect(
         @Id Long id,
@@ -10,6 +13,7 @@ public record DomainSelect(
         String domain, //域名
         String type,
         String status,
-        Integer groupTypeId
-) {
+        Integer groupTypeId,
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") ZonedDateTime deletedAt
+        ) {
 }

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

@@ -1,6 +1,7 @@
 package com.webflux.launchadmin.mysql.entity.planNew;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import io.r2dbc.spi.Parameter;
 import org.springframework.data.annotation.Id;
 import org.springframework.data.relational.core.mapping.Table;
 
@@ -39,6 +40,8 @@ public record PlanNew(
         Long groupIdQs,
         String baiduDot,
         Long backgroundGroupIdNewAdd, //background_groupId_new_add
-        String previewUrl
-        ) {
+        String previewUrl,
+        Integer redirectType, // 1三方链接 2计划链接
+        Long redirectPlanId
+) {
 }

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

@@ -673,6 +673,32 @@ public class GoGenerateService {
                         })
                 );
     }
+
+    public Mono<StringBuilder> byPlanNewIdGetUrl( Long planNewId,Boolean isQs) {
+       return template.selectOne(Query.query(Criteria.where("plan_new_id").is(planNewId)), PlanNew.class)
+               .flatMap(f-> Mono.zip(Mono.just(f),  template.select(Query.query(Criteria
+                       .where("group_type_id").is(isQs?f.groupIdQs():f.groupId())
+                       .and("status").is(1)
+                       .and("type").is(1)
+                       .and("group_type").is(2)
+                       .and("deleted_at").isNotNull()), DomainSelect.class)
+                       .collectList()
+                       .switchIfEmpty(Mono.just(List.of())), (a, b) -> {
+                   StringBuilder stringBuilder = new StringBuilder();
+                   if (Objects.nonNull(b) && !b.isEmpty()) {
+                       DomainSelect domainSelect = b.get(RandomUtil.randomInt(0, b.size()));
+                       stringBuilder.append("http://");
+                       stringBuilder.append(get6Str());
+                       stringBuilder.append(".");
+                       stringBuilder.append(domainSelect.domain());
+                       stringBuilder.append("/index.html?code=");
+                       stringBuilder.append(a.code());
+                       stringBuilder.append("&sk=");
+                       stringBuilder.append(IdUtil.fastSimpleUUID());
+                   }
+                   return stringBuilder;
+               }));
+    }
     public Mono<StringBuilder> getStringBuilderMonoYx( Mono<PlanNew> code) {
         return code.flatMap(f9 -> Mono.zip(code, template.select(Query.query(Criteria.where("group_type_id").is(f9.groupId())
                                 .and("status").is(1).and("type").is(1).and("group_type").is(1).and("deleted_at").isNull()), DomainSelect.class)