|
@@ -900,12 +900,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);
|
|
|
});
|
|
});
|
|
|
});
|
|
});
|