|
|
@@ -237,134 +237,83 @@ public class PlanNewOutController {
|
|
|
map.put(request.getUnique(),0);
|
|
|
request.setUserVisits(0);
|
|
|
}
|
|
|
- Mono<PlanNew> code = template.selectOne(Query.query(Criteria.where("code").is(request.getCode())), PlanNew.class);
|
|
|
- //+二维码
|
|
|
- Mono<StringBuilder> stringBuilderMono = code.flatMap(f -> goGenerateService.getStringBuilderMono(f.planNewId()));
|
|
|
- Mono<PosterTemplate> poster_template = code.flatMap(plan -> template.selectOne(Query.query(Criteria.where("poster_template_id")
|
|
|
- .is(plan.posterTemplateId())), PosterTemplate.class));
|
|
|
- Mono<List<Poster>> Poster = code.flatMap(plan -> template.select(Query.query(Criteria.where("poster_template_id")
|
|
|
- .is(plan.posterTemplateId())).sort(Sort.by(Sort.Order.desc("created_at"))), Poster.class).collectList());
|
|
|
- Mono<List<PlanNewBackgroupPoster>> planNewBackgroupPoster = code.flatMap(plan -> template.select(Query.query(Criteria.where("plan_new_id")
|
|
|
- .is(plan.planNewId())).sort(Sort.by(Sort.Order.asc("idx"))), PlanNewBackgroupPoster.class)
|
|
|
- .collectList());
|
|
|
-
|
|
|
- Mono<DataLists0> dataLists0Mono = Mono.zip(code, poster_template, Poster, planNewBackgroupPoster,stringBuilderMono).flatMap(f -> {
|
|
|
- DataLists0 dataLists0 = new DataLists0();
|
|
|
- dataLists0.setSpare(f.getT5().toString());
|
|
|
- dataLists0.setPlanNew(f.getT1());
|
|
|
- dataLists0.setPosterTemplate(f.getT2());
|
|
|
- List<Poster> t3 = f.getT3();
|
|
|
- if(t3.size()!=0){
|
|
|
- if (t3.size() <= request.getUserVisits()) {
|
|
|
- dataLists0.setPoster(t3.getLast());
|
|
|
- }else {
|
|
|
- dataLists0.setPoster(t3.get(request.getUserVisits()));
|
|
|
- }
|
|
|
- }
|
|
|
- Map<Integer, List<PlanNewBackgroupPoster>> collect = f.getT4().stream().collect(Collectors.groupingBy(PlanNewBackgroupPoster::qsOrFx));
|
|
|
- List<PlanNewBackgroupPoster> fx = collect.get(1).stream().sorted(Comparator.comparing(PlanNewBackgroupPoster::index)).collect(Collectors.toList());
|
|
|
- if (Objects.nonNull(fx) &&fx.size() != 0) {
|
|
|
- if (fx.size() <= request.getUserVisits()) {
|
|
|
- Integer userVisits = request.getUserVisits();
|
|
|
- int v =userVisits%fx.size();
|
|
|
- dataLists0.setFxSetting(fx.get(v));
|
|
|
- dataLists0.setLink(dataLists0.getPlanNew().link());
|
|
|
- }else {
|
|
|
- dataLists0.setLink(null);
|
|
|
- dataLists0.setFxSetting(fx.get(request.getUserVisits()));
|
|
|
+ Mono<PlanNew> code0 = template.selectOne(Query.query(Criteria.where("code").is(request.getCode())), PlanNew.class);
|
|
|
+ Mono<DataLists0> dataLists0Mono = code0.flatMap(ftmp->{
|
|
|
+ Mono<PlanNew> code = Mono.just(ftmp);
|
|
|
+ return Mono.zip(code, getPoster_template_id(code), getPoster(code), getPlanNewBackgroupPoster(code),getEwm(request, code)).flatMap(f -> {
|
|
|
+ DataLists0 dataLists0 = new DataLists0();
|
|
|
+ dataLists0.setSpare(f.getT5().toString());
|
|
|
+ dataLists0.setPlanNew(f.getT1());
|
|
|
+ dataLists0.setPosterTemplate(f.getT2());
|
|
|
+ List<Poster> t3 = f.getT3();
|
|
|
+ if(t3.size()!=0){
|
|
|
+ if (t3.size() <= request.getUserVisits()) {
|
|
|
+ dataLists0.setPoster(t3.getLast());
|
|
|
+ }else {
|
|
|
+ dataLists0.setPoster(t3.get(request.getUserVisits()));
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- List<PlanNewBackgroupPoster> qs = collect.get(2).stream().sorted(Comparator.comparing(PlanNewBackgroupPoster::index)).collect(Collectors.toList());
|
|
|
- if(Objects.nonNull(qs) && !qs.isEmpty()){
|
|
|
- if (qs.size() <= request.getUserVisits()) {
|
|
|
- Integer userVisits = request.getUserVisits();
|
|
|
- int v =userVisits%fx.size();
|
|
|
- dataLists0.setQsSetting(fx.get(v));
|
|
|
- //dataLists0.setQsSetting(qs.getLast());
|
|
|
+ Map<Integer, List<PlanNewBackgroupPoster>> collect = f.getT4().stream().collect(Collectors.groupingBy(PlanNewBackgroupPoster::qsOrFx));
|
|
|
+ //营销-清水
|
|
|
+ if (Objects.nonNull(request.getWx_user_id()) && !"".equals(request.getWx_user_id())) {
|
|
|
+ List<PlanNewBackgroupPoster> qs = collect.get(2).stream().sorted(Comparator.comparing(PlanNewBackgroupPoster::index)).collect(Collectors.toList());
|
|
|
+ if(Objects.nonNull(qs) && !qs.isEmpty()){
|
|
|
+ if (qs.size() <= request.getUserVisits()) {
|
|
|
+ Integer userVisits = request.getUserVisits();
|
|
|
+ int v =userVisits%qs.size();
|
|
|
+ dataLists0.setQsSetting(qs.get(v));
|
|
|
+ }else {
|
|
|
+ dataLists0.setQsSetting(qs.get(request.getUserVisits()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ PlanNewBackgroupPoster qsSetting = dataLists0.getQsSetting();
|
|
|
+ if(Objects.nonNull(qsSetting)){
|
|
|
+ dataLists0.setLimitTime(qsSetting.limitTime());
|
|
|
+ dataLists0.setLimitTimeRemark(qsSetting.limitTimeRemark());
|
|
|
+ }
|
|
|
}else {
|
|
|
- dataLists0.setQsSetting(qs.get(request.getUserVisits()));
|
|
|
- }
|
|
|
- }
|
|
|
- if (Objects.nonNull(request.getWx_user_id()) && !"".equals(request.getWx_user_id())) {
|
|
|
- PlanNewBackgroupPoster qsSetting = dataLists0.getQsSetting();
|
|
|
- if(Objects.nonNull(qsSetting)){
|
|
|
- dataLists0.setLimitTime(qsSetting.limitTime());
|
|
|
- dataLists0.setLimitTimeRemark(qsSetting.limitTimeRemark());
|
|
|
- }
|
|
|
- }else {
|
|
|
- PlanNewBackgroupPoster fxSetting = dataLists0.getFxSetting();
|
|
|
- if(Objects.nonNull(fxSetting)){
|
|
|
- dataLists0.setLimitTime(fxSetting.limitTime());
|
|
|
- dataLists0.setLimitTimeRemark(fxSetting.limitTimeRemark());
|
|
|
- }
|
|
|
- }
|
|
|
- return Mono.just(dataLists0);
|
|
|
- });
|
|
|
- Mono<DataLists0> zip = dataLists0Mono.flatMap(f -> {
|
|
|
- Mono<Audio> id = null;
|
|
|
- if (Objects.nonNull(request.getWx_user_id()) && !"".equals(request.getWx_user_id())) {
|
|
|
- PlanNewBackgroupPoster qsSetting = f.getQsSetting();
|
|
|
- if (Objects.nonNull(qsSetting) && Objects.nonNull(qsSetting.audioId()) && 0 != qsSetting.audioId()) {
|
|
|
- id = template.selectOne(Query.query(Criteria.where("id").is(qsSetting.audioId())), Audio.class);
|
|
|
- }
|
|
|
- } else {
|
|
|
- PlanNewBackgroupPoster fxSetting = f.getFxSetting();
|
|
|
- if (Objects.nonNull(fxSetting) && Objects.nonNull(fxSetting.audioId()) && 0 != fxSetting.audioId()) {
|
|
|
- id = template.selectOne(Query.query(Criteria.where("id").is(fxSetting.audioId())), Audio.class);
|
|
|
+ List<PlanNewBackgroupPoster> fx = collect.get(1).stream().sorted(Comparator.comparing(PlanNewBackgroupPoster::index)).collect(Collectors.toList());
|
|
|
+ if (Objects.nonNull(fx) &&fx.size() != 0) {
|
|
|
+ if (fx.size() <= request.getUserVisits()) {
|
|
|
+ Integer userVisits = request.getUserVisits();
|
|
|
+ int v =userVisits%fx.size();
|
|
|
+ dataLists0.setFxSetting(fx.get(v));
|
|
|
+ dataLists0.setLink(dataLists0.getPlanNew().link());
|
|
|
+ }else {
|
|
|
+ dataLists0.setLink(null);
|
|
|
+ dataLists0.setFxSetting(fx.get(request.getUserVisits()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ PlanNewBackgroupPoster fxSetting = dataLists0.getFxSetting();
|
|
|
+ if(Objects.nonNull(fxSetting)){
|
|
|
+ dataLists0.setLimitTime(fxSetting.limitTime());
|
|
|
+ dataLists0.setLimitTimeRemark(fxSetting.limitTimeRemark());
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- if (Objects.isNull(id)) {
|
|
|
- id = template.selectOne(Query.query(Criteria.where("id").is(f.getPlanNew().retAudioId())), Audio.class);
|
|
|
- }
|
|
|
- return Mono.zip(Mono.just(f), id, (a, b) -> {
|
|
|
- a.setAudio(b);
|
|
|
- return a;
|
|
|
- });
|
|
|
-
|
|
|
- });
|
|
|
- // 设置封面等
|
|
|
- Mono<DataLists0> dataLists0Mono2 = zip.flatMap(fm -> {
|
|
|
- Poster poster = fm.getPoster();
|
|
|
- if (Objects.isNull(poster)) {
|
|
|
- return Mono.just(fm);
|
|
|
- }
|
|
|
- String posterTemplate = poster.posterTemplate();
|
|
|
- JSONObject jsonObject = JSONUtil.parseObj(posterTemplate);
|
|
|
- GoRequest goRequest = new GoRequest();
|
|
|
- BeanUtil.copyProperties(jsonObject, goRequest);
|
|
|
- Mono<String> outTemPoster = goGenerateService.getOutTemPoster(goRequest, goGenerateService.getStringBuilderMono(goRequest));
|
|
|
- Mono<DataLists0> zip1 = Mono.zip(Mono.just(fm), outTemPoster, (a, b) -> {
|
|
|
- Poster poster1 = new Poster(poster.posterId(),
|
|
|
- poster.posterTemplateId(),
|
|
|
- b,
|
|
|
- poster.createUser(),
|
|
|
- poster.createId(),
|
|
|
- poster.createdAt(),
|
|
|
- poster.updatedAt(),
|
|
|
- poster.generateImagesJson(),
|
|
|
- poster.generateImagesUrl());
|
|
|
- a.setPoster(poster1);
|
|
|
- return a;
|
|
|
+ return Mono.just(dataLists0);
|
|
|
});
|
|
|
- return zip1;
|
|
|
});
|
|
|
+
|
|
|
+ Mono<DataLists0> dataLists0Mono1 = setEndData(request, setFmV(request, setAudioV(request, dataLists0Mono)));
|
|
|
+ return RStatus.successList(dataLists0Mono1);
|
|
|
+ }
|
|
|
+//设置二维码 生成图片
|
|
|
+ private Mono<DataLists0> setEndData(HftRequest request, Mono<DataLists0> dataLists0Mono2) {
|
|
|
Mono<DataLists0> dataLists0Mono1 = dataLists0Mono2.flatMap(fm -> {
|
|
|
Poster poster = fm.getPoster();
|
|
|
if (Objects.isNull(poster)) {
|
|
|
return Mono.just(fm);
|
|
|
}
|
|
|
String posterTemplate = poster.posterTemplate();
|
|
|
- GoRequest goRequest = null;
|
|
|
+ GoRequest goRequest ;
|
|
|
if (Objects.nonNull(request.getWx_user_id()) && !"".equals(request.getWx_user_id())) {
|
|
|
PlanNewBackgroupPoster qsSetting = fm.getQsSetting();
|
|
|
goRequest = setNameVal(posterTemplate, qsSetting,fm.getSpare());
|
|
|
} else {
|
|
|
PlanNewBackgroupPoster fxSetting = fm.getFxSetting();
|
|
|
goRequest = setNameVal(posterTemplate, fxSetting,fm.getSpare());
|
|
|
-
|
|
|
}
|
|
|
-
|
|
|
- String ret = null;
|
|
|
+ String ret;
|
|
|
if (Objects.nonNull(goRequest)) {
|
|
|
ret = goGenerateService.goGenerate(JSONUtil.toJsonStr(goRequest));
|
|
|
} else {
|
|
|
@@ -372,7 +321,13 @@ public class PlanNewOutController {
|
|
|
ret = goGenerateService.goGenerate(posterTemplate);
|
|
|
}
|
|
|
if (Objects.nonNull(ret)) {
|
|
|
- JSONObject jsonObject1 = JSONUtil.parseObj(ret);
|
|
|
+ JSONObject jsonObject1;
|
|
|
+ try {
|
|
|
+ jsonObject1 = JSONUtil.parseObj(ret);
|
|
|
+ }catch (Exception e){
|
|
|
+ throw new BaseException(e.getMessage() +"---"+JSONUtil.parseObj(goRequest));
|
|
|
+ }
|
|
|
+ //JSONObject jsonObject1 = JSONUtil.parseObj(ret);
|
|
|
if (jsonObject1.containsKey("code") && jsonObject1.get("code", Integer.class) == 0 && jsonObject1.containsKey("data")) {
|
|
|
JSONObject data = jsonObject1.get("data", JSONObject.class);
|
|
|
if (data.containsKey("Url")) {
|
|
|
@@ -388,11 +343,111 @@ public class PlanNewOutController {
|
|
|
}
|
|
|
return Mono.just(fm);
|
|
|
});
|
|
|
- return RStatus.successList(dataLists0Mono1);
|
|
|
+ return dataLists0Mono1;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 设置封面等
|
|
|
+ private Mono<DataLists0> setFmV(HftRequest request, Mono<DataLists0> zip) {
|
|
|
+ Mono<DataLists0> dataLists0Mono2 = zip.flatMap(fm -> {
|
|
|
+ Poster poster = fm.getPoster();
|
|
|
+ if (Objects.isNull(poster)) {
|
|
|
+ return Mono.just(fm);
|
|
|
+ }
|
|
|
+ String posterTemplate = poster.posterTemplate();
|
|
|
+ JSONObject jsonObject ;
|
|
|
+ try {
|
|
|
+ jsonObject = JSONUtil.parseObj(posterTemplate);
|
|
|
+ }catch (Exception e){
|
|
|
+ throw new BaseException(e.getMessage() +"---"+posterTemplate);
|
|
|
+ }
|
|
|
+ //JSONObject jsonObject = JSONUtil.parseObj(posterTemplate);
|
|
|
+ GoRequest goRequest = new GoRequest();
|
|
|
+ BeanUtil.copyProperties(jsonObject, goRequest);
|
|
|
+ Mono<String> outTemPoster;
|
|
|
+ if (Objects.nonNull(request.getWx_user_id()) && !"".equals(request.getWx_user_id())) {
|
|
|
+ outTemPoster = goGenerateService.getOutTemPosterQs(goRequest, goGenerateService.getStringBuilderMono(goRequest));
|
|
|
+ }else {
|
|
|
+ outTemPoster = goGenerateService.getOutTemPosterYx(goRequest, goGenerateService.getStringBuilderMono(goRequest));
|
|
|
+ }
|
|
|
+ return Mono.zip(Mono.just(fm), outTemPoster, (a, b) -> {
|
|
|
+ Poster poster1 = new Poster(poster.posterId(),
|
|
|
+ poster.posterTemplateId(),
|
|
|
+ b,
|
|
|
+ poster.createUser(),
|
|
|
+ poster.createId(),
|
|
|
+ poster.createdAt(),
|
|
|
+ poster.updatedAt(),
|
|
|
+ poster.generateImagesJson(),
|
|
|
+ poster.generateImagesUrl());
|
|
|
+ a.setPoster(poster1);
|
|
|
+ return a;
|
|
|
+ });
|
|
|
+ });
|
|
|
+ return dataLists0Mono2;
|
|
|
}
|
|
|
|
|
|
+ //音频
|
|
|
+ private Mono<DataLists0> setAudioV(HftRequest request, Mono<DataLists0> dataLists0Mono) {
|
|
|
+ Mono<DataLists0> zip = dataLists0Mono.flatMap(f -> {
|
|
|
+ Mono<Audio> id = null;
|
|
|
+ if (Objects.nonNull(request.getWx_user_id()) && !"".equals(request.getWx_user_id())) {
|
|
|
+ PlanNewBackgroupPoster qsSetting = f.getQsSetting();
|
|
|
+ if (Objects.nonNull(qsSetting) && Objects.nonNull(qsSetting.audioId()) && 0 != qsSetting.audioId()) {
|
|
|
+ id = template.selectOne(Query.query(Criteria.where("id").is(qsSetting.audioId())), Audio.class);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ PlanNewBackgroupPoster fxSetting = f.getFxSetting();
|
|
|
+ if (Objects.nonNull(fxSetting) && Objects.nonNull(fxSetting.audioId()) && 0 != fxSetting.audioId()) {
|
|
|
+ id = template.selectOne(Query.query(Criteria.where("id").is(fxSetting.audioId())), Audio.class);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (Objects.isNull(id)) {
|
|
|
+ // id = template.selectOne(Query.query(Criteria.where("id").is(f.getPlanNew().retAudioId())), Audio.class);
|
|
|
+ return Mono.just(f);
|
|
|
+ }
|
|
|
+ return Mono.zip(Mono.just(f), id, (a, b) -> {
|
|
|
+ a.setAudio(b);
|
|
|
+ return a;
|
|
|
+ });
|
|
|
+ });
|
|
|
+ return zip;
|
|
|
+ }
|
|
|
+
|
|
|
+ // //+二维码
|
|
|
+ private Mono<StringBuilder> getEwm(HftRequest request, Mono<PlanNew> code) {
|
|
|
+ Mono<StringBuilder> stringBuilderMono ;
|
|
|
+ if (Objects.nonNull(request.getWx_user_id()) && !"".equals(request.getWx_user_id())) {
|
|
|
+ stringBuilderMono = goGenerateService.getStringBuilderMonoQs(code);
|
|
|
+ }else{
|
|
|
+ stringBuilderMono = goGenerateService.getStringBuilderMonoYx(code);
|
|
|
+ }
|
|
|
+ return stringBuilderMono;
|
|
|
+ }
|
|
|
+
|
|
|
+ private Mono<List<PlanNewBackgroupPoster>> getPlanNewBackgroupPoster(Mono<PlanNew> code) {
|
|
|
+ return code.flatMap(plan -> template.select(Query.query(Criteria.where("plan_new_id")
|
|
|
+ .is(plan.planNewId())).sort(Sort.by(Sort.Order.asc("idx"))), PlanNewBackgroupPoster.class)
|
|
|
+ .collectList());
|
|
|
+ }
|
|
|
+
|
|
|
+ private Mono<List<Poster>> getPoster(Mono<PlanNew> code) {
|
|
|
+ return code.flatMap(plan -> template.select(Query.query(Criteria.where("poster_template_id")
|
|
|
+ .is(plan.posterTemplateId())).sort(Sort.by(Sort.Order.desc("created_at"))), Poster.class).collectList());
|
|
|
+ }
|
|
|
+
|
|
|
+ private Mono<PosterTemplate> getPoster_template_id(Mono<PlanNew> code) {
|
|
|
+ return code.flatMap(plan -> template.selectOne(Query.query(Criteria.where("poster_template_id")
|
|
|
+ .is(plan.posterTemplateId())), PosterTemplate.class));
|
|
|
+ }
|
|
|
+//qrcode 二维码设置
|
|
|
private GoRequest setNameVal(String posterTemplate, PlanNewBackgroupPoster qsSetting,String spare) {
|
|
|
- JSONObject jsonObject = JSONUtil.parseObj(posterTemplate);
|
|
|
+ JSONObject jsonObject ;
|
|
|
+ try {
|
|
|
+ jsonObject = JSONUtil.parseObj(posterTemplate);
|
|
|
+ }catch (Exception e){
|
|
|
+ throw new BaseException(e.getMessage() +"---"+posterTemplate);
|
|
|
+ }
|
|
|
+ //JSONObject jsonObject = JSONUtil.parseObj(posterTemplate);
|
|
|
GoRequest goRequest = new GoRequest();
|
|
|
BeanUtil.copyProperties(jsonObject,goRequest);
|
|
|
if(Objects.nonNull(qsSetting)){
|
|
|
@@ -408,6 +463,7 @@ public class PlanNewOutController {
|
|
|
if (!jsonArray.isEmpty()) {
|
|
|
String s = jsonArray.get(0, String.class);
|
|
|
item.setV(s);
|
|
|
+ item.setName("客服二维码");
|
|
|
return goRequest;
|
|
|
}
|
|
|
}
|