|
|
@@ -145,80 +145,96 @@ public class PlanNewOutController {
|
|
|
*/
|
|
|
@PostMapping("hfoInfo")
|
|
|
public Mono<RStatus<DataLists>> hfoInfo(@RequestBody HfoRequest 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<UserVisits> insert = template.insert(new UserVisits(null, request.getWx_user_id(), 1));
|
|
|
- Mono<UserVisits> wx_user_id = template.selectOne(Query.query(Criteria.where("wx_user_id").is(request.getWx_user_id())), UserVisits.class)
|
|
|
- .flatMap(f -> {
|
|
|
- if (f.num() >= 4) {
|
|
|
- return Mono.just(f);
|
|
|
- }else {
|
|
|
- return template.update(new UserVisits(f.id(), f.wxUserId(), f.num() + 1));
|
|
|
- }
|
|
|
- }).switchIfEmpty(insert);
|
|
|
- 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);
|
|
|
+ Mono<PlanNew> code0 = template.selectOne(Query.query(Criteria.where("code").is(request.getCode())), PlanNew.class);
|
|
|
+ Mono<DataLists> dataListsMono1 = code0.flatMap(planNew -> {
|
|
|
+ Mono<PlanNew> code = Mono.just(planNew);
|
|
|
+ Mono<List<Domain>> domain = code.flatMap(plan -> template.select(Query.query(Criteria.where("group_type").is(1)), Domain.class).onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()+"6"))).collectList());
|
|
|
+ // //类型 1素材分类2清水分类
|
|
|
+ Mono<List<Image>> image = template.select(Query.query(Criteria.where("type").is(1)), Image.class).onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()+"7"))).collectList();
|
|
|
+ Mono<List<Material>> text = template.select(Query.query(Criteria.where("type").is(4)), Material.class).onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()+"8"))).collectList();
|
|
|
+ Mono<UserVisits> insert = template.insert(new UserVisits(null, request.getWx_user_id(), 1));
|
|
|
+ Mono<UserVisits> wx_user_id = template.selectOne(Query.query(Criteria.where("wx_user_id").is(request.getWx_user_id())), UserVisits.class).onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()+"9")))
|
|
|
+ .flatMap(f -> {
|
|
|
+ if (f.num() >= 4) {
|
|
|
+ return Mono.just(f);
|
|
|
+ } else {
|
|
|
+ return template.update(new UserVisits(f.id(), f.wxUserId(), f.num() + 1)).onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()+"10")));
|
|
|
+ }
|
|
|
+ }).switchIfEmpty(insert);
|
|
|
+ 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);
|
|
|
});
|
|
|
- return Mono.just(h5ImageAndTexts);
|
|
|
- });
|
|
|
- Mono<Audio> listAudio = code.flatMap(plan -> template.selectOne(Query.query(Criteria.where("id").is(plan.listAudioId())), Audio.class));
|
|
|
- Mono<Audio> retAudioId = code.flatMap(plan -> template.selectOne(Query.query(Criteria.where("id").is(plan.retAudioId())), Audio.class));
|
|
|
- Mono<ReturnLoop> returnLoop = code.flatMap(plan -> {
|
|
|
- if(Objects.isNull(plan.returnLoopId())){
|
|
|
- return Mono.just(getReturnLoop());
|
|
|
- }else {
|
|
|
- return template.selectOne(Query.query(Criteria.where("id").is(plan.returnLoopId())), ReturnLoop.class);
|
|
|
- }
|
|
|
- }).switchIfEmpty(Mono.just(getReturnLoop()));
|
|
|
- Mono<List<Ad>> adtop = template.select(Query.query(Criteria.where("type").is(1)), Ad.class).collectList();////广告类型1顶部2底部3返回4安卓,ios的返回
|
|
|
- Mono<List<Ad>> bottom = template.select(Query.query(Criteria.where("type").is(2)), Ad.class).collectList();
|
|
|
- Mono<DataLists> dataListsMono = Mono.zip(code, listAudio, retAudioId, returnLoop, arrayListMono,adtop, bottom,wx_user_id).flatMap(f -> {
|
|
|
- DataLists dataLists = new DataLists();
|
|
|
- dataLists.setPlanNew(f.getT1());
|
|
|
- dataLists.setListAudio(f.getT2());
|
|
|
- dataLists.setRetAudio(f.getT3());
|
|
|
- if (-1!=f.getT4().id()) {
|
|
|
- dataLists.setReturnLoop(f.getT4());
|
|
|
- }else {
|
|
|
- dataLists.setReturnLoop(null);
|
|
|
- }
|
|
|
- dataLists.setImages(f.getT5());
|
|
|
- if(f.getT8().num()>=4){
|
|
|
- dataLists.setIsRet(1);
|
|
|
- }else {
|
|
|
- dataLists.setIsRet(-1);
|
|
|
- }
|
|
|
- if (f.getT1().topAdvBl()==1) {
|
|
|
- List<Ad> ads = f.getT6().subList(0, f.getT1().topAdvNum());
|
|
|
- dataLists.setTopAd(ads);
|
|
|
- }
|
|
|
- if (f.getT1().bottomAdvBl()==1) {
|
|
|
- List<Ad> ads = f.getT7().subList(0, f.getT1().bottomAdvNum());
|
|
|
- dataLists.setBottomAd(ads);
|
|
|
- }
|
|
|
- return Mono.just(dataLists);
|
|
|
- });
|
|
|
|
|
|
- return RStatus.successList(dataListsMono);
|
|
|
+ Mono<Audio> listAudio = code.flatMap(plan ->{
|
|
|
+ if (Objects.isNull(plan.listAudioId())) {
|
|
|
+ return Mono.just(new Audio(null,null,null,null,null,null,null,null));
|
|
|
+ }else {
|
|
|
+ return template.selectOne(
|
|
|
+ Query.query(Criteria.where("id").is(plan.listAudioId())),
|
|
|
+ Audio.class);
|
|
|
+ } }
|
|
|
+ ).onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()+"1")));
|
|
|
+ Mono<Audio> retAudioId = code.flatMap(plan -> template.selectOne(Query.query(Criteria.where("id")
|
|
|
+ .is(plan.retAudioId())), Audio.class)).onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()+"2")));
|
|
|
+ Mono<ReturnLoop> returnLoop = code.flatMap(plan -> {
|
|
|
+ if (Objects.isNull(plan.returnLoopId())) {
|
|
|
+ return Mono.just(getReturnLoop());
|
|
|
+ } else {
|
|
|
+ return template.selectOne(Query.query(Criteria.where("id").is(plan.returnLoopId())), ReturnLoop.class).onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()+"3")));
|
|
|
+ }
|
|
|
+ }).switchIfEmpty(Mono.just(getReturnLoop()));
|
|
|
+ Mono<List<Ad>> adtop = template.select(Query.query(Criteria.where("type").is(1)), Ad.class).onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()+"4"))).collectList();////广告类型1顶部2底部3返回4安卓,ios的返回
|
|
|
+ Mono<List<Ad>> bottom = template.select(Query.query(Criteria.where("type").is(2)), Ad.class).onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()+"5"))).collectList();
|
|
|
+ Mono<DataLists> dataListsMono = Mono.zip(code, listAudio, retAudioId, returnLoop, arrayListMono, adtop, bottom, wx_user_id).flatMap(f -> {
|
|
|
+ DataLists dataLists = new DataLists();
|
|
|
+ dataLists.setPlanNew(f.getT1());
|
|
|
+ if (Objects.nonNull(f.getT2().id())) {
|
|
|
+ dataLists.setListAudio(f.getT2());
|
|
|
+ }
|
|
|
+ dataLists.setRetAudio(f.getT3());
|
|
|
+ if (-1 != f.getT4().id()) {
|
|
|
+ dataLists.setReturnLoop(f.getT4());
|
|
|
+ } else {
|
|
|
+ dataLists.setReturnLoop(null);
|
|
|
+ }
|
|
|
+ dataLists.setImages(f.getT5());
|
|
|
+ if (f.getT8().num() >= 4) {
|
|
|
+ dataLists.setIsRet(1);
|
|
|
+ } else {
|
|
|
+ dataLists.setIsRet(-1);
|
|
|
+ }
|
|
|
+ if (f.getT1().topAdvBl() == 1) {
|
|
|
+ List<Ad> ads = f.getT6().subList(0, f.getT1().topAdvNum());
|
|
|
+ dataLists.setTopAd(ads);
|
|
|
+ }
|
|
|
+ if (f.getT1().bottomAdvBl() == 1) {
|
|
|
+ List<Ad> ads = f.getT7().subList(0, f.getT1().bottomAdvNum());
|
|
|
+ dataLists.setBottomAd(ads);
|
|
|
+ }
|
|
|
+ return Mono.just(dataLists);
|
|
|
+ });
|
|
|
+ return dataListsMono;
|
|
|
+ });
|
|
|
+ return RStatus.successList(dataListsMono1);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
private ReturnLoop getReturnLoop() {
|
|
|
return new ReturnLoop(-1L, null, null, null, null, null, null, null, null, null, null, null, null, null);
|
|
|
}
|