|
|
@@ -3,15 +3,14 @@ package com.webflux.launchadmin.mysql.service.planNew.goGenerate;
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.util.IdUtil;
|
|
|
import cn.hutool.core.util.RandomUtil;
|
|
|
-import cn.hutool.core.util.StrUtil;
|
|
|
-import cn.hutool.http.HttpResponse;
|
|
|
+
|
|
|
import cn.hutool.http.HttpUtil;
|
|
|
import cn.hutool.json.JSONArray;
|
|
|
import cn.hutool.json.JSONObject;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
import com.webflux.launchadmin.config.BaseContextHandler;
|
|
|
import com.webflux.launchadmin.global.BaseException;
|
|
|
-import com.webflux.launchadmin.mysql.controller.planNew.req.AudioRequest;
|
|
|
+
|
|
|
import com.webflux.launchadmin.mysql.controller.planNew.req.PlanReq;
|
|
|
import com.webflux.launchadmin.mysql.controller.planNew.req.PosterRequest;
|
|
|
import com.webflux.launchadmin.mysql.controller.planNew.req.ServiceGroupSettingItemRequest;
|
|
|
@@ -28,17 +27,18 @@ import org.springframework.data.relational.core.query.Query;
|
|
|
import org.springframework.data.relational.core.query.Update;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
|
-import reactor.core.publisher.Flux;
|
|
|
+
|
|
|
import reactor.core.publisher.Mono;
|
|
|
|
|
|
import java.time.ZonedDateTime;
|
|
|
import java.util.List;
|
|
|
import java.util.Objects;
|
|
|
import java.util.Optional;
|
|
|
-import java.util.concurrent.atomic.AtomicReference;
|
|
|
-import java.util.concurrent.locks.Lock;
|
|
|
+
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
+
|
|
|
+
|
|
|
@Service
|
|
|
public class GoGenerateService {
|
|
|
|
|
|
@@ -180,7 +180,7 @@ public class GoGenerateService {
|
|
|
Mono<List<Image>> bgImage, Mono<List<Image>> fmImage, Mono<List<Material>> text,Mono<List<Image>> fm1,
|
|
|
ServiceGroupSettingItemRequest qsSetting,PlanReq saveRequest) {
|
|
|
|
|
|
- Mono<String> stringMono = Mono.zip(bgImage, fmImage, text, stringBuilderMono,fm1,getStringBuilderMono(saveRequest.getPlanNewId())).flatMap(f -> {
|
|
|
+ Mono<String> stringMono = Mono.zip(bgImage, fmImage, text, stringBuilderMono,fm1,getStringBuilderMono(saveRequest)).flatMap(f -> {
|
|
|
List<StringBuilder> t4 = f.getT4();
|
|
|
|
|
|
Optional<Image> first = f.getT1().stream().findFirst();
|
|
|
@@ -235,7 +235,56 @@ public class GoGenerateService {
|
|
|
});
|
|
|
return stringMono;
|
|
|
}
|
|
|
+ public Mono<StringBuilder> getStringBuilderMono(PlanReq saveRequest) {
|
|
|
+ if (Objects.isNull(saveRequest.getPlanNewId())) {
|
|
|
+
|
|
|
+ return template.select(Query.query(Criteria.where("group_type_id").is(saveRequest.getGroupId())
|
|
|
+ .and("status").is(1).and("type").is(1)), DomainSelect.class)
|
|
|
+ .collectList()
|
|
|
+ .switchIfEmpty(Mono.just(List.of())).flatMap(b->{
|
|
|
+ StringBuilder stringBuilder = new StringBuilder();
|
|
|
+ if (Objects.isNull(b) || b.isEmpty()) {
|
|
|
+ stringBuilder.append("生成计划链接 匹配域名为空");
|
|
|
+ } else {
|
|
|
+ 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.getCode());
|
|
|
+ stringBuilder.append("&sk=");
|
|
|
+ stringBuilder.append(IdUtil.fastSimpleUUID());
|
|
|
+ }
|
|
|
+ return Mono.just(stringBuilder);
|
|
|
+ });
|
|
|
+ }else{
|
|
|
+ Mono<StringBuilder> stringBuilderMono1 = template.selectOne(Query.query(Criteria.where("plan_new_id").is(saveRequest.getPlanNewId())), PlanNew.class)
|
|
|
+ .flatMap(f9 -> Mono.zip(Mono.just(f9), template.select(Query.query(Criteria.where("group_type_id").is(f9.groupId())
|
|
|
+ .and("status").is(1).and("type").is(1)), DomainSelect.class)
|
|
|
+ .collectList()
|
|
|
+ .switchIfEmpty(Mono.just(List.of())), (a, b) -> {
|
|
|
+ StringBuilder stringBuilder = new StringBuilder();
|
|
|
+ if (Objects.isNull(b) || b.isEmpty()) {
|
|
|
+ stringBuilder.append("生成计划链接 匹配域名为空");
|
|
|
+ } else {
|
|
|
+ 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;
|
|
|
+ })
|
|
|
+ );
|
|
|
+ return stringBuilderMono1;
|
|
|
+ }
|
|
|
|
|
|
+ }
|
|
|
public Mono<StringBuilder> getStringBuilderMono(Long planNewId) {
|
|
|
Mono<StringBuilder> stringBuilderMono1 = template.selectOne(Query.query(Criteria.where("plan_new_id").is(planNewId)), PlanNew.class)
|
|
|
.flatMap(f9 -> Mono.zip(Mono.just(f9), template.select(Query.query(Criteria.where("group_type_id").is(f9.groupId())
|