|
|
@@ -1,11 +1,7 @@
|
|
|
package com.webflux.launchadmin.mysql.controller.planNew;
|
|
|
|
|
|
-import com.webflux.launchadmin.context.UserContext;
|
|
|
import com.webflux.launchadmin.mysql.controller.planNew.req.*;
|
|
|
-import com.webflux.launchadmin.mysql.controller.planNew.res.DataLists;
|
|
|
-import com.webflux.launchadmin.mysql.controller.planNew.res.DataLists0;
|
|
|
-import com.webflux.launchadmin.mysql.controller.planNew.res.DataLists1;
|
|
|
-import com.webflux.launchadmin.mysql.controller.planNew.res.H5ImageAndText;
|
|
|
+import com.webflux.launchadmin.mysql.controller.planNew.res.*;
|
|
|
import com.webflux.launchadmin.mysql.entity.planNew.*;
|
|
|
import com.webflux.launchcommon.returnObj.RStatus;
|
|
|
import jakarta.annotation.Resource;
|
|
|
@@ -15,19 +11,17 @@ import org.springframework.data.relational.core.query.Criteria;
|
|
|
import org.springframework.data.relational.core.query.Query;
|
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
-import reactor.core.publisher.Flux;
|
|
|
import reactor.core.publisher.Mono;
|
|
|
-
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Objects;
|
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
|
-import java.util.concurrent.atomic.LongAdder;
|
|
|
import java.util.stream.Collectors;
|
|
|
import java.util.stream.IntStream;
|
|
|
-import java.util.stream.Stream;
|
|
|
+
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 计划-H5
|
|
|
@@ -49,6 +43,60 @@ public class PlanNewOutController {
|
|
|
map.clear();
|
|
|
log.info("清空计划-H5用户Map数据》》》》》》》》》》》》》》》》》》》》》》 结束");
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 列表返回images(列表内容),shareQrurl(背景组) ,baiduDot,retAudio
|
|
|
+ * Mono<RStatus<DataListsKefu>>
|
|
|
+ */
|
|
|
+
|
|
|
+ @PostMapping("kefuList")
|
|
|
+ public Mono<RStatus<DataListsKefu>> kefuList(@RequestBody KefuRequest request){
|
|
|
+ Mono<PlanNew> code = template.selectOne(Query.query(Criteria.where("code").is(request.getCode())), PlanNew.class);
|
|
|
+ // //类型 1素材分类2清水分类
|
|
|
+ Mono<List<Domain>> domain = code.flatMap(plan -> template.select(Query.query(Criteria.where("group_type").is(1)), Domain.class).collectList());
|
|
|
+ Mono<List<Image>> image = template.select(Query.query(Criteria.where("type").is(1)), Image.class).collectList();
|
|
|
+ Mono<List<Material>> text = template.select(Query.query(Criteria.where("type").is(4)), Material.class).collectList();
|
|
|
+ Mono<List<H5ImageAndText>> arrayListMono = Mono.zip(code, domain, image, text).flatMap(f -> {
|
|
|
+ //H5ImageAndText
|
|
|
+ Integer integer = f.getT1().pageShow();//群数量
|
|
|
+ List<Domain> t2 = f.getT2();
|
|
|
+ List<Image> t3 = f.getT3();
|
|
|
+ List<Material> t4 = f.getT4();
|
|
|
+ List<H5ImageAndText> h5ImageAndTexts = new ArrayList<>();
|
|
|
+ IntStream.range(0, integer).forEach(i -> {
|
|
|
+ Image image1 = t3.get(Math.min(i, t3.size()));
|
|
|
+ Domain domain1 = t2.get(Math.min(i, t2.size()));
|
|
|
+ Material material = t4.get(Math.min(i, t4.size()));
|
|
|
+ H5ImageAndText h5ImageAndText = new H5ImageAndText();
|
|
|
+ h5ImageAndText.setImage(image1.image());
|
|
|
+ h5ImageAndText.setDomain(domain1.domain());
|
|
|
+ h5ImageAndText.setName(material.content());
|
|
|
+ h5ImageAndTexts.add(h5ImageAndText);
|
|
|
+ });
|
|
|
+ return Mono.just(h5ImageAndTexts);
|
|
|
+ });
|
|
|
+
|
|
|
+ Mono<List<BackgroupImageItem>> group_id = code.filter(ft->Objects.nonNull(ft.backgroundGroupIdNewAdd())).flatMap(plan -> template
|
|
|
+ .select(Query.query(Criteria.where("group_id")
|
|
|
+ .is(plan.backgroundGroupIdNewAdd())), BackgroupImageItem.class).collectList())
|
|
|
+ .switchIfEmpty(Mono.just(List.of()));
|
|
|
+ Mono<Audio> retAudioId = code.flatMap(plan -> template.selectOne(Query.query(Criteria.where("id").is(plan.retAudioId())), Audio.class));
|
|
|
+
|
|
|
+ Mono<DataListsKefu> dataListsMono = Mono.zip(code, group_id, retAudioId, arrayListMono).flatMap(f -> {
|
|
|
+ DataListsKefu dataLists = new DataListsKefu();
|
|
|
+ dataLists.setPlanNew(f.getT1());
|
|
|
+ dataLists.setBaiduDot(f.getT1().baiduDot());
|
|
|
+ List<BackgroupImageItem> t2 = f.getT2();
|
|
|
+ if (!t2.isEmpty()) {
|
|
|
+ dataLists.setShareQrurl(t2.get(0).image());
|
|
|
+ }
|
|
|
+ dataLists.setRetAudio(f.getT3());
|
|
|
+ dataLists.setImages(f.getT4());
|
|
|
+ return Mono.just(dataLists);
|
|
|
+ });
|
|
|
+
|
|
|
+ return RStatus.successList(dataListsMono);
|
|
|
+ }
|
|
|
/**
|
|
|
* h5-通过code (第一个接口)
|
|
|
* @param request
|