|
|
@@ -0,0 +1,1023 @@
|
|
|
+package com.webflux.launchadmin.mysql.controller.planNew;
|
|
|
+
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
+import cn.hutool.core.util.IdUtil;
|
|
|
+import cn.hutool.core.util.RandomUtil;
|
|
|
+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.lbOut.resp.DataList;
|
|
|
+import com.webflux.launchadmin.mysql.controller.listening.res.ListeningPlanNewRes;
|
|
|
+import com.webflux.launchadmin.mysql.controller.listening.res.ListeningPlanNewRes1;
|
|
|
+import com.webflux.launchadmin.mysql.controller.listening.res.ListeningPlanNewRes2;
|
|
|
+import com.webflux.launchadmin.mysql.controller.planNew.req.*;
|
|
|
+import com.webflux.launchadmin.mysql.controller.planNew.res.*;
|
|
|
+import com.webflux.launchadmin.mysql.entity.lb.HomePageTempItem;
|
|
|
+import com.webflux.launchadmin.mysql.entity.listening.ListeningPlanNew;
|
|
|
+import com.webflux.launchadmin.mysql.entity.listening.ListeningPlanNewBackgroupPoster;
|
|
|
+import com.webflux.launchadmin.mysql.entity.planNew.*;
|
|
|
+import com.webflux.launchadmin.mysql.service.listening.ListeningPlanServiceInterface;
|
|
|
+import com.webflux.launchadmin.mysql.service.planNew.PlanServiceInterface;
|
|
|
+import com.webflux.launchadmin.mysql.service.planNew.goGenerate.GoGenerateService;
|
|
|
+import com.webflux.launchadmin.mysql.service.planNew.structure.GoRequest;
|
|
|
+import com.webflux.launchcommon.returnObj.Paged;
|
|
|
+import com.webflux.launchcommon.returnObj.RStatus;
|
|
|
+import jakarta.annotation.Resource;
|
|
|
+import jakarta.validation.constraints.NotNull;
|
|
|
+import org.springframework.data.domain.Sort;
|
|
|
+import org.springframework.data.relational.core.query.Criteria;
|
|
|
+import org.springframework.data.r2dbc.core.R2dbcEntityTemplate;
|
|
|
+import org.springframework.data.relational.core.query.Query;
|
|
|
+import org.springframework.data.relational.core.query.Update;
|
|
|
+import org.springframework.web.bind.annotation.*;
|
|
|
+import reactor.core.publisher.Flux;
|
|
|
+import reactor.core.publisher.Mono;
|
|
|
+import java.time.ZonedDateTime;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Comparator;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Objects;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+
|
|
|
+/**
|
|
|
+ * 计划
|
|
|
+ * @author lw12420
|
|
|
+ * @date 2024/05/21
|
|
|
+ */
|
|
|
+@RestController
|
|
|
+@RequestMapping("in/planNew")
|
|
|
+public class PlanNewController {
|
|
|
+ //一天时间
|
|
|
+ @Resource
|
|
|
+ private R2dbcEntityTemplate template;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private GoGenerateService goGenerateService;
|
|
|
+ @Resource
|
|
|
+ private ListeningPlanServiceInterface listeningPlanService;
|
|
|
+ @Resource
|
|
|
+ private PlanServiceInterface planServiceInterface;
|
|
|
+
|
|
|
+ @GetMapping("tt")
|
|
|
+ public String tt(){
|
|
|
+ String str="{\"item\": [{\"a\": \"left\", \"c\": \"rgba(0, 0, 0, 1)\", \"h\": 20, \"s\": 14, \"t\": \"title\", \"v\": \"群聊,本地视频推荐\", \"w\": 140, \"x\": 100, \"y\": 100, \"fn\": \"ali-Regular\", \"rm\": \"备注\", \"bgc\": \"\", \"name\": \"海报标题\", \"uuid\": \"b3a10a5e-8c17-4a37-9a99-13600328868c\", \"warp\": false, \"weight\": 500}, {\"c\": \"rgba(0, 0, 0, 1)\", \"h\": 300, \"t\": \"qrcode\", \"v\": \"\", \"w\": 300, \"x\": 87, \"y\": 172, \"fn\": \"\", \"rm\": \"备注\", \"bgc\": \"#ffffff\", \"name\": \"二维码\", \"uuid\": \"2862c036-ad07-48d4-ab34-94fbb2c46c30\"}], \"width\": 458, \"height\": 709, \"bg_img_src\": \"\"}";
|
|
|
+
|
|
|
+ return goGenerateService.goGenerate(str);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * 分享、清水背景组-回显
|
|
|
+ * @param planNewId 计划id
|
|
|
+ * @param qsOrFx 1:营销 2:清水
|
|
|
+ * @return {@link Mono}<{@link RStatus}<{@link BackgroupImageRes}>>
|
|
|
+ */
|
|
|
+ @GetMapping("backgroupSelectOne/{type}/{planNewId}/{qsOrFx}")
|
|
|
+ public Mono<RStatus<List<PlanNewBackgroupPosterAllRes>>> backgroupSelectOne(@PathVariable("type") @NotNull Integer type,
|
|
|
+ @PathVariable("planNewId") String planNewId,@PathVariable("qsOrFx") Integer qsOrFx ){
|
|
|
+ if (1 == type) {
|
|
|
+ Mono<List<PlanNewBackgroupPosterAllRes>> listMono = template.select(Query.query(Criteria.where("plan_new_id").is(planNewId)
|
|
|
+ .and("qs_or_fx").is(qsOrFx)).sort(Sort.by(Sort.Order.asc("idx"))), PlanNewBackgroupPoster.class).flatMap(request->{
|
|
|
+ PlanNewBackgroupPosterAllRes planNewBackgroupPosterAllRes =
|
|
|
+ new PlanNewBackgroupPosterAllRes(request.id(),
|
|
|
+ request.audioId(),
|
|
|
+ request.groupId(),
|
|
|
+ request.image(),
|
|
|
+ request.kefu(),
|
|
|
+ request.limitTime(),
|
|
|
+ request.limitTimeRemark(),
|
|
|
+ request.status(),
|
|
|
+ request.index(),
|
|
|
+ request.serviceGroupId(),
|
|
|
+ request.serviceGroupType(),
|
|
|
+ qsOrFx,
|
|
|
+ ZonedDateTime.now(),
|
|
|
+ null,
|
|
|
+ null,
|
|
|
+ request.planNewId(), null, null);
|
|
|
+ return Mono.just(planNewBackgroupPosterAllRes);
|
|
|
+ }).collectList();
|
|
|
+ return RStatus.successList(listMono);
|
|
|
+ } else if (2 == type) {
|
|
|
+ Mono<List<PlanNewBackgroupPosterAllRes>> listMono = template.select(Query.query(Criteria.where("listening_plan_new_id").is(planNewId)
|
|
|
+ .and("qs_or_fx").is(qsOrFx))
|
|
|
+ .sort(Sort.by(Sort.Order.asc("idx"))), ListeningPlanNewBackgroupPoster.class).flatMap(request->{
|
|
|
+ PlanNewBackgroupPosterAllRes planNewBackgroupPosterAllRes =
|
|
|
+ new PlanNewBackgroupPosterAllRes(request.id(),
|
|
|
+ request.audioId(),
|
|
|
+ request.groupId(),
|
|
|
+ request.image(),
|
|
|
+ request.kefu(),
|
|
|
+ request.limitTime(),
|
|
|
+ request.limitTimeRemark(),
|
|
|
+ request.status(),
|
|
|
+ request.index(),
|
|
|
+ request.serviceGroupId(),
|
|
|
+ request.serviceGroupType(),
|
|
|
+ qsOrFx,
|
|
|
+ ZonedDateTime.now(),
|
|
|
+ null,
|
|
|
+ null,
|
|
|
+ request.listeningPlanNewId(), null, null);
|
|
|
+ return Mono.just(planNewBackgroupPosterAllRes);
|
|
|
+ }).collectList();
|
|
|
+ return RStatus.successList(listMono);
|
|
|
+ }
|
|
|
+ throw new BaseException("type异常");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 背景组详情接口
|
|
|
+ * @param id 背景组id
|
|
|
+ * @return {@link Mono}<{@link RStatus}<{@link DataLists}>>
|
|
|
+ */
|
|
|
+ @GetMapping("backgroupImageRes/{id}")
|
|
|
+ public Mono<RStatus<BackgroupImageRes>> backgroupImageRes(@PathVariable("id") Long id){
|
|
|
+ Mono<BackgroupImage> id1 = template.selectOne(Query.query(Criteria.where("id")
|
|
|
+ .is(id)), BackgroupImage.class) .switchIfEmpty(Mono.error(new BaseException(" 通过code查询结果为空")))
|
|
|
+ .onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage())));
|
|
|
+ Mono<List<BackgroupImageItem>> group_id = template.select(Query.query(Criteria.where("group_id")
|
|
|
+ .is(id)).sort(Sort.by(Sort.Order.asc("index"))), BackgroupImageItem.class).collectList();
|
|
|
+ Mono<BackgroupImageRes> zip = Mono.zip(id1, group_id, (lambdaA, lambdaB) -> {
|
|
|
+ BackgroupImageRes backgroupImageRes = new BackgroupImageRes();
|
|
|
+ backgroupImageRes.setBackgroupImage(lambdaA);
|
|
|
+ backgroupImageRes.setBackgroupImageItemList(lambdaB);
|
|
|
+ return backgroupImageRes;
|
|
|
+ });
|
|
|
+ return RStatus.successList(zip);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 客服组-下拉 ( By status)
|
|
|
+ * @param status
|
|
|
+ * @return {@link Mono}<{@link RStatus}<{@link List}<{@link ReturnLoop}>>>
|
|
|
+ */
|
|
|
+ @GetMapping("serviceGroupSlt")
|
|
|
+ public Mono<RStatus<List<ServiceGroup>>> serviceGroupSlt (@RequestParam("status") Integer status){
|
|
|
+ Mono<List<ServiceGroup>> status1 = template.select(Query.query(Criteria.where("status")
|
|
|
+ .is(2)), ServiceGroup.class).collectList();
|
|
|
+ return RStatus.successList(status1);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 素材、清水--分类下拉(groupType)名称模糊查询
|
|
|
+ * @param name
|
|
|
+ * @return {@link Mono}<{@link RStatus}<{@link Long}>>
|
|
|
+ */
|
|
|
+ @GetMapping("groupTypeSlt")
|
|
|
+ public Mono<RStatus<List<GroupType>>> groupTypeSlt (@RequestParam("name") String name,@RequestParam("groupType")String groupType){
|
|
|
+ Criteria criteria= Criteria.where("group_type").is(groupType);
|
|
|
+ if (Objects.nonNull(name) && "" != name) {
|
|
|
+ criteria = criteria.and("name").like("%"+name+"%");
|
|
|
+ }
|
|
|
+ Mono<List<GroupType>> listMono = template.select(Query.query(criteria), GroupType.class).collectList();
|
|
|
+ return RStatus.success(listMono);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 返回广告下拉名称模糊查询
|
|
|
+ * @param name
|
|
|
+ * @return {@link Mono}<{@link RStatus}<{@link Long}>>
|
|
|
+ */
|
|
|
+ @GetMapping("retrunloopSlt")
|
|
|
+ public Mono<RStatus<List<ReturnLoop>>> retrunloopSlt (@RequestParam("name") String name){
|
|
|
+ Criteria criteria= Criteria.empty() ; //poster_template_id
|
|
|
+ if (Objects.nonNull(name) && "" != name) {
|
|
|
+ criteria = criteria.and("name").like("%"+name+"%");
|
|
|
+ }
|
|
|
+ Mono<List<ReturnLoop>> listMono = template.select(Query.query(criteria), ReturnLoop.class).collectList();
|
|
|
+ return RStatus.success(listMono);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * (分享/清水)背景组设置下拉名称模糊查询
|
|
|
+ * @param name groupType
|
|
|
+ * @return {@link Mono}<{@link RStatus}<{@link Long}>>
|
|
|
+ */
|
|
|
+ @GetMapping("backgroupSlt")
|
|
|
+ public Mono<RStatus<List<BackgroupImage>>> backgroupSlt ( @RequestParam("name") String name,@RequestParam("groupType") String groupType){
|
|
|
+ Criteria criteria= Criteria.where("group_type").is(groupType) ; //poster_template_id
|
|
|
+ if (Objects.nonNull(name) && "" != name) {
|
|
|
+ criteria = criteria.and("name").like("%"+name+"%");
|
|
|
+ }
|
|
|
+ Mono<List<BackgroupImage>> listMono = template.select(Query.query(criteria), BackgroupImage.class).collectList();
|
|
|
+ return RStatus.success(listMono);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 音频下拉名称模糊查询
|
|
|
+ * @param name
|
|
|
+ * @return {@link Mono}<{@link RStatus}<{@link Long}>>
|
|
|
+ */
|
|
|
+ @GetMapping("audioSlt")
|
|
|
+ public Mono<RStatus<List<Audio>>> audio (@RequestParam("name") String name){
|
|
|
+ Criteria criteria= Criteria.empty() ; //poster_template_id
|
|
|
+ if (Objects.nonNull(name) && "" != name) {
|
|
|
+ criteria = criteria.and("name").like("%"+name+"%");
|
|
|
+ }
|
|
|
+ Mono<List<Audio>> listMono = template.select(Query.query(criteria), Audio.class).collectList();
|
|
|
+ return RStatus.success(listMono);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 海报保存
|
|
|
+ * @param posterRequset
|
|
|
+ * @return {@link Mono}<{@link RStatus}<{@link PlanNew}>>
|
|
|
+ */
|
|
|
+ @PostMapping("savePoster")
|
|
|
+ public Mono<RStatus<Poster>> savePoster(@RequestBody PosterRequest posterRequset){
|
|
|
+ return goGenerateService.savePoster(posterRequset);
|
|
|
+ }
|
|
|
+ @PostMapping("test11")
|
|
|
+ public Mono<String> test11(){
|
|
|
+ return goGenerateService.updatePoster1();
|
|
|
+ }
|
|
|
+ @PostMapping("test12")
|
|
|
+ public Mono<String> test112(){
|
|
|
+ String string = RandomUtil.randomString("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 6);
|
|
|
+ return Mono.just(string);//goGenerateService.updatePoster12();
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 海报修改
|
|
|
+ * @param posterRequset
|
|
|
+ * @return {@link Mono}<{@link RStatus}<{@link PlanNew}>>
|
|
|
+ */
|
|
|
+ @PostMapping("updatePoster")
|
|
|
+ public Mono<RStatus<Poster>> updatePoster(@RequestBody PosterRequest posterRequset){
|
|
|
+ return goGenerateService.updatePoster(posterRequset);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 海报删除
|
|
|
+ * @param posterId
|
|
|
+ * @return {@link Mono}<{@link RStatus}<{@link Long}>>
|
|
|
+ */
|
|
|
+ @DeleteMapping("deletePosterById/{posterId}")
|
|
|
+ public Mono<RStatus<Long>> deletePosterById (@PathVariable("posterId") @NotNull Long posterId){
|
|
|
+ Mono<Long> plan_new_id = template.delete(Query.query(Criteria.where("poster_id").is(posterId)), Poster.class);
|
|
|
+ return RStatus.success(plan_new_id);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 海报列表
|
|
|
+ * @param request
|
|
|
+ * @return {@link Mono}<{@link RStatus}<{@link Paged}<{@link PosterTemplate}>>>
|
|
|
+ */
|
|
|
+ @PostMapping("posterList")
|
|
|
+ public Mono<RStatus<Paged<Poster>>> posterList(@RequestBody PosterPage request) {
|
|
|
+ Criteria criteria= Criteria.empty() ; //poster_template_id
|
|
|
+ criteria = criteria.and("poster_template_id").is(request.getPosterTemplateId());
|
|
|
+ Query query = Query.query(criteria);
|
|
|
+ Criteria finalCriteria = criteria;
|
|
|
+ int skip = (request.getPage() - 1) * request.getSize();
|
|
|
+ int limit = request.getSize();
|
|
|
+ Mono<Paged<Poster>> pagedMono = template.count(query, Poster.class).flatMap(fm ->
|
|
|
+ template.select(Query.query(finalCriteria)
|
|
|
+ .offset(skip)
|
|
|
+ .limit(limit)
|
|
|
+ .sort(Sort.by(Sort.Order.asc("created_at"))),Poster.class)
|
|
|
+ .collectList()
|
|
|
+ .map(list -> new Paged<>(fm, list,request.getPage(),request.getSize()))
|
|
|
+ );
|
|
|
+ return RStatus.successList(pagedMono);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 海报模版保存
|
|
|
+ * @param posterTemplateRequset
|
|
|
+ * @return {@link Mono}<{@link RStatus}<{@link PlanNew}>>
|
|
|
+ */
|
|
|
+ @PostMapping("savePosterTem")
|
|
|
+ public Mono<RStatus<PosterTemplate>> savePosterTem(@RequestBody PosterTemplateRequset posterTemplateRequset){
|
|
|
+ PosterTemplate posterTemplate = new PosterTemplate(null, posterTemplateRequset.getPosterTemplateName(), BaseContextHandler.getUserName(),
|
|
|
+ BaseContextHandler.getUserId(), ZonedDateTime.now(),
|
|
|
+ ZonedDateTime.now());
|
|
|
+ Mono<PosterTemplate> insert = template.insert(posterTemplate);
|
|
|
+ return RStatus.success(insert);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 海报模版修改
|
|
|
+ * @param posterTemplateRequset
|
|
|
+ * @return {@link Mono}<{@link RStatus}<{@link PlanNew}>>
|
|
|
+ */
|
|
|
+ @PostMapping("updatePosterTem")
|
|
|
+ public Mono<RStatus<Long>> updatePosterTem(@RequestBody PosterTemplateRequset posterTemplateRequset){
|
|
|
+
|
|
|
+ Criteria empty = Criteria.where("poster_template_id").is(posterTemplateRequset.getPosterTemplateId());
|
|
|
+ Update update = Update.update("updated_at", ZonedDateTime.now());
|
|
|
+ if(Objects.nonNull(posterTemplateRequset.getPosterTemplateName()) && !"".equals(posterTemplateRequset.getPosterTemplateName())){
|
|
|
+ update= update.set("poster_template_name",posterTemplateRequset.getPosterTemplateName());
|
|
|
+ }
|
|
|
+ Mono<Long> update1 = template.update(Query.query(empty), update, PosterTemplate.class);
|
|
|
+ return RStatus.success(update1);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 海报模版删除
|
|
|
+ * @param posterTemplateId
|
|
|
+ * @return {@link Mono}<{@link RStatus}<{@link Long}>>
|
|
|
+ */
|
|
|
+ @DeleteMapping("deletePosterTemById/{posterTemplateId}")
|
|
|
+ public Mono<RStatus<Long>> deletePosterTemById (@PathVariable("posterTemplateId") @NotNull Long posterTemplateId){
|
|
|
+ Mono<Long> plan_new_id = template.delete(Query.query(Criteria.where("poster_template_id").is(posterTemplateId)), PosterTemplate.class);
|
|
|
+ return RStatus.success(plan_new_id);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 海报模版-编辑回显详情
|
|
|
+ * @param posterTemplateId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @GetMapping("posterTem/{planNewId}")
|
|
|
+ public Mono<RStatus<PosterTemplate>> posterTem(@PathVariable("posterTemplateId") @NotNull Long posterTemplateId){
|
|
|
+ Mono<PosterTemplate> planNewMono = template
|
|
|
+ .selectOne(Query.query(Criteria.where("poster_template_id")
|
|
|
+ .is(posterTemplateId)), PosterTemplate.class);
|
|
|
+ return RStatus.success(planNewMono);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 海报模版下拉
|
|
|
+ * @param request
|
|
|
+ * @return {@link Mono}<{@link RStatus}<{@link Paged}<{@link PosterTemplate}>>>
|
|
|
+ */
|
|
|
+ @PostMapping("posterTemSelect")
|
|
|
+ public Mono<RStatus<List<PosterTemplate>>> posterTemSelect(@RequestBody PosterTemSelect request) {
|
|
|
+ Criteria criteria= Criteria.empty() ; //poster_template_id
|
|
|
+ if (Objects.nonNull(request.getName()) && "" != request.getName()) {
|
|
|
+ criteria = criteria.and("name").like(request.getName());
|
|
|
+ }
|
|
|
+ Mono<List<PosterTemplate>> listMono = template.select(Query.query(criteria).sort(Sort.by(Sort.Order.desc("created_at"))), PosterTemplate.class).collectList();
|
|
|
+ return RStatus.successList(listMono);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 海报模版-列表
|
|
|
+ * @param request
|
|
|
+ * @return {@link Mono}<{@link RStatus}<{@link Paged}<{@link PosterTemplate}>>>
|
|
|
+ */
|
|
|
+ @PostMapping("posterTemList")
|
|
|
+ public Mono<RStatus<Paged<PosterTemplateRes>>> posterTemList(@RequestBody PosterTemPage request) {
|
|
|
+ Criteria criteria= Criteria.empty() ; //poster_template_id
|
|
|
+ if (Objects.nonNull(request.getName()) && "" != request.getName()) {
|
|
|
+ criteria = criteria.and("name").is(request.getName());
|
|
|
+ }
|
|
|
+ Query query = Query.query(criteria);
|
|
|
+ Criteria finalCriteria = criteria;
|
|
|
+ int skip = (request.getPage() - 1) * request.getSize();
|
|
|
+ int limit = request.getSize();
|
|
|
+ Mono<Long> count = template.count(query, PosterTemplate.class);
|
|
|
+ Flux<PosterTemplateRes> created_at = template.select(Query.query(finalCriteria)
|
|
|
+ .offset(skip)
|
|
|
+ .limit(limit)
|
|
|
+ .sort(Sort.by(Sort.Order.desc("created_at"))), PosterTemplate.class).flatMap(f ->
|
|
|
+ template.count(Query.query(Criteria.where("poster_template_id").is(f.posterTemplateId())), Poster.class).map(n -> {
|
|
|
+ PosterTemplateRes posterTemplateRes1 = new PosterTemplateRes();
|
|
|
+ posterTemplateRes1.setPosterTemplateId(f.posterTemplateId());
|
|
|
+ posterTemplateRes1.setPosterTemplateName(f.posterTemplateName());
|
|
|
+ posterTemplateRes1.setCreatedAt(f.createdAt());
|
|
|
+ posterTemplateRes1.setNum(n);
|
|
|
+ posterTemplateRes1.setCreateId(f.createId());
|
|
|
+ posterTemplateRes1.setCreateUser(f.createUser());
|
|
|
+ posterTemplateRes1.setUpdatedAt(f.updatedAt());
|
|
|
+ return posterTemplateRes1;
|
|
|
+ })
|
|
|
+ );
|
|
|
+ Mono<List<PosterTemplateRes>> listMono = created_at.collectList();
|
|
|
+ Mono<Paged<PosterTemplateRes>> zip = Mono.zip(count, listMono, (fm, list) -> new Paged<PosterTemplateRes>(fm, list, request.getPage(), request.getSize())
|
|
|
+ );
|
|
|
+ return RStatus.successList(zip);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 计划保存
|
|
|
+ * @param saveRequest
|
|
|
+ * @return {@link Mono}<{@link RStatus}<{@link PlanNew}>>
|
|
|
+ */
|
|
|
+ @PostMapping("savePlan")
|
|
|
+ public Mono<RStatus<String>> savePlan(@RequestBody PlanReq saveRequest){
|
|
|
+ if(2==saveRequest.getType()){
|
|
|
+ return listeningPlanService.savePlan(saveRequest);
|
|
|
+ }else if(1==saveRequest.getType()){
|
|
|
+ String userName = BaseContextHandler.getUserName();
|
|
|
+ String userId = BaseContextHandler.getUserId();
|
|
|
+ saveRequest.setCode(IdUtil.fastSimpleUUID());
|
|
|
+ Long posterTemplateId = saveRequest.getPosterTemplateId();
|
|
|
+ Mono<String> stringMono1 = template
|
|
|
+ .select(Query.query(Criteria.where("poster_template_id")
|
|
|
+ .is(posterTemplateId))
|
|
|
+ .sort(Sort.by(Sort.Order.asc("created_at"))), Poster.class)
|
|
|
+ .collectList().flatMap(f -> {
|
|
|
+ Poster poster = f.get(0);
|
|
|
+ String posterTemplate = poster.posterTemplate();
|
|
|
+ JSONObject jsonObject = JSONUtil.parseObj(posterTemplate);
|
|
|
+ GoRequest goRequest = new GoRequest();
|
|
|
+ BeanUtil.copyProperties(jsonObject, goRequest);
|
|
|
+ ServiceGroupSettingItemRequest serviceGroupSettingItemRequest = saveRequest.getBackgroupFxSetting().get(0);
|
|
|
+ Mono<String> stringMono = goGenerateService.saveAndUpdatePlanGenerateImage0(goRequest,
|
|
|
+ goGenerateService.setCusqrcodeSetV(goRequest),//getStringBuilderMono(goRequest),
|
|
|
+ serviceGroupSettingItemRequest,
|
|
|
+ saveRequest);
|
|
|
+ return stringMono;
|
|
|
+ });
|
|
|
+ Mono<StringBuilder> stringBuilderMono ;
|
|
|
+ if(saveRequest.getRedirectType()==2){
|
|
|
+ stringBuilderMono =Mono.just(new StringBuilder()); //goGenerateService.byPlanNewIdGetUrl(saveRequest.getRedirectPlanId());
|
|
|
+ }else {
|
|
|
+ stringBuilderMono=Mono.just(new StringBuilder(saveRequest.getLink()));
|
|
|
+ }
|
|
|
+ Mono<PlanNew> insert = Mono.zip(stringMono1, stringBuilderMono).flatMap(f->{
|
|
|
+ String listButton="立即入群";
|
|
|
+ if(Objects.nonNull(saveRequest.getListButton()) && !"".equals(saveRequest.getListButton().trim())){
|
|
|
+ listButton=saveRequest.getListButton();
|
|
|
+ }
|
|
|
+ PlanNew plan = new PlanNew(IdUtil.fastSimpleUUID(),
|
|
|
+ saveRequest.getName(),
|
|
|
+ userName,
|
|
|
+ userId,
|
|
|
+ ZonedDateTime.now(),
|
|
|
+ ZonedDateTime.now(),
|
|
|
+ null,
|
|
|
+ saveRequest.getType(),
|
|
|
+ saveRequest.getCode(),
|
|
|
+ saveRequest.getGroupId(),
|
|
|
+ saveRequest.getPosterTemplateId(),
|
|
|
+ saveRequest.getPageShow(),
|
|
|
+ saveRequest.getPageLine(),
|
|
|
+ saveRequest.getCount(),
|
|
|
+ saveRequest.getListAudioId(),
|
|
|
+ saveRequest.getRetAudioId(),
|
|
|
+ f.getT2().toString(),
|
|
|
+ saveRequest.getIsAddQun(),
|
|
|
+ saveRequest.getBackgroundGroupId(),
|
|
|
+ saveRequest.getHomePageId(),
|
|
|
+ saveRequest.getTopAdvNum(),
|
|
|
+ saveRequest.getBottomAdvNum(),
|
|
|
+ saveRequest.getReturnLoopId(),
|
|
|
+ saveRequest.getBackgroundGroupQsId(),
|
|
|
+ saveRequest.getTopAdvBl(),
|
|
|
+ saveRequest.getBottomAdvBl(),
|
|
|
+ saveRequest.getReturnLoopBl(),
|
|
|
+ saveRequest.getGroupIdQs(),
|
|
|
+ saveRequest.getBaiduDot(),
|
|
|
+ saveRequest.getBackgroundGroupIdNewAdd(),
|
|
|
+ f.getT1(),
|
|
|
+ saveRequest.getRedirectType(),
|
|
|
+ saveRequest.getRedirectPlanId(),
|
|
|
+ saveRequest.getImportDomain(),
|
|
|
+ saveRequest.getLandingPageDomain(),
|
|
|
+ saveRequest.getTransferPageDomain(),
|
|
|
+ saveRequest.getTransferPageBl(),
|
|
|
+ saveRequest.getBackgroupDomain(),
|
|
|
+ listButton
|
|
|
+ );
|
|
|
+ return template.insert(plan);
|
|
|
+ });
|
|
|
+ Mono<String> map = insert.flatMap(f -> {
|
|
|
+ Flux<PlanNewBackgroupPoster> just = getPlanNewBackgroupPosterFlux(saveRequest, f);
|
|
|
+ return Mono.zip(batchInsert(just), Mono.just(f)).flatMap(ff -> {
|
|
|
+ PlanNew t2 = ff.getT2();
|
|
|
+ return Mono.just(t2.planNewId());
|
|
|
+ });
|
|
|
+ });
|
|
|
+ return RStatus.success(map);
|
|
|
+ }
|
|
|
+ throw new BaseException("type类型错误");
|
|
|
+ }
|
|
|
+
|
|
|
+ private Flux<PlanNewBackgroupPoster> getPlanNewBackgroupPosterFlux(PlanReq saveRequest, PlanNew f) {
|
|
|
+ List<ServiceGroupSettingItemRequest> backgroupFxSetting = saveRequest.getBackgroupFxSetting();
|
|
|
+ ArrayList<PlanNewBackgroupPoster> listeningPlanNewBackgroupPosters = new ArrayList<>();
|
|
|
+ backgroupFxSetting.forEach(fx -> {
|
|
|
+ PlanNewBackgroupPoster listeningPlanNewBackgroupPoster = fxBackgroupSettingsSave(fx, f.planNewId(), 1);
|
|
|
+ listeningPlanNewBackgroupPosters.add(listeningPlanNewBackgroupPoster);
|
|
|
+ });
|
|
|
+ List<ServiceGroupSettingItemRequest> backgroupQsSetting = saveRequest.getBackgroupQsSetting();
|
|
|
+ backgroupQsSetting.forEach(fx -> {
|
|
|
+ PlanNewBackgroupPoster listeningPlanNewBackgroupPoster = fxBackgroupSettingsSave(fx, f.planNewId(), 2);
|
|
|
+ listeningPlanNewBackgroupPosters.add(listeningPlanNewBackgroupPoster);
|
|
|
+ });
|
|
|
+ Flux<PlanNewBackgroupPoster> just = Flux.fromIterable(listeningPlanNewBackgroupPosters);
|
|
|
+ return just;
|
|
|
+ }
|
|
|
+
|
|
|
+ public Mono<List<PlanNewBackgroupPoster>> batchInsert(Flux<PlanNewBackgroupPoster> entities) {
|
|
|
+ Mono<List<PlanNewBackgroupPoster>> listMono = entities.flatMap(entity -> template
|
|
|
+ .insert(PlanNewBackgroupPoster.class).using(entity)).collectList();
|
|
|
+ return listMono;
|
|
|
+ }
|
|
|
+ public PlanNewBackgroupPoster fxBackgroupSettingsSave( ServiceGroupSettingItemRequest request,String planNewId,Integer qsOrFx){
|
|
|
+ return new PlanNewBackgroupPoster(null,
|
|
|
+ request.getAudioId(),
|
|
|
+ request.getGroupId(),
|
|
|
+ request.getImage(),
|
|
|
+ request.getKefu(),
|
|
|
+ request.getLimitTime(),
|
|
|
+ request.getLimitTimeRemark(),
|
|
|
+ request.getStatus(),
|
|
|
+ request.getIndex(),
|
|
|
+ request.getServiceGroupId(),
|
|
|
+ request.getServiceGroupType(),
|
|
|
+ qsOrFx,
|
|
|
+ ZonedDateTime.now(),
|
|
|
+ null,
|
|
|
+ null,
|
|
|
+ planNewId,null,null);
|
|
|
+// template.insert(planNewBackgroupPoster).subscribe(f->{
|
|
|
+// JSONObject jsonObject = JSONUtil.parseObj(f);
|
|
|
+// System.out.println(jsonObject);
|
|
|
+// });
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ @PostMapping("updatePlan")
|
|
|
+ public Mono<RStatus<String>> updatePlan(@RequestBody PlanReq saveRequest){
|
|
|
+ if(2==saveRequest.getType()){
|
|
|
+ return listeningPlanService.savePlan(saveRequest);
|
|
|
+ }else if(1==saveRequest.getType()){
|
|
|
+ Long posterTemplateId = saveRequest.getPosterTemplateId();
|
|
|
+ Mono<String> stringMono1 = template
|
|
|
+ .select(Query.query(Criteria.where("poster_template_id").is(posterTemplateId)).sort(Sort.by(Sort.Order.asc("created_at"))), Poster.class)
|
|
|
+ .collectList().flatMap(f -> {
|
|
|
+ Poster poster = f.get(0);
|
|
|
+ String posterTemplate = poster.posterTemplate();
|
|
|
+ JSONObject jsonObject = JSONUtil.parseObj(posterTemplate);
|
|
|
+ GoRequest goRequest = new GoRequest();
|
|
|
+ BeanUtil.copyProperties(jsonObject, goRequest);
|
|
|
+ ServiceGroupSettingItemRequest serviceGroupSettingItemRequest = saveRequest.getBackgroupFxSetting().get(0);
|
|
|
+ Mono<String> stringMono = goGenerateService.saveAndUpdatePlanGenerateImage0(goRequest,
|
|
|
+ // goGenerateService.getStringBuilderMono(goRequest),
|
|
|
+ goGenerateService.setCusqrcodeSetV(goRequest),
|
|
|
+ serviceGroupSettingItemRequest, saveRequest);
|
|
|
+ return stringMono;
|
|
|
+ });
|
|
|
+ Mono<PlanNew> plan_new_id1 = template.selectOne(Query.query(Criteria.where("plan_new_id").is(saveRequest.getPlanNewId())), PlanNew.class);
|
|
|
+ Mono<StringBuilder> stringBuilderMono ;
|
|
|
+ if(saveRequest.getRedirectType()==2){
|
|
|
+ stringBuilderMono = Mono.just(new StringBuilder(""));//goGenerateService.byPlanNewIdGetUrl(saveRequest.getRedirectPlanId());
|
|
|
+ }else {
|
|
|
+ stringBuilderMono=Mono.just(new StringBuilder(saveRequest.getLink()));
|
|
|
+ }
|
|
|
+ Mono<PlanNew> planNewMono = Mono.zip(stringMono1, plan_new_id1, stringBuilderMono).flatMap(f -> {
|
|
|
+ PlanNew map = f.getT2();
|
|
|
+ String listButton="立即入群";
|
|
|
+ if(Objects.nonNull(saveRequest.getListButton()) && !"".equals(saveRequest.getListButton().trim())){
|
|
|
+ listButton=saveRequest.getListButton();
|
|
|
+ }
|
|
|
+ PlanNew planNew = new PlanNew(
|
|
|
+ saveRequest.getPlanNewId(),
|
|
|
+ saveRequest.getName(),
|
|
|
+ map.createUser(),
|
|
|
+ map.createId(),
|
|
|
+ map.createdAt(),
|
|
|
+ ZonedDateTime.now(),
|
|
|
+ map.deletedAt(),
|
|
|
+ saveRequest.getType(),
|
|
|
+ map.code(),
|
|
|
+ saveRequest.getGroupId(),
|
|
|
+ saveRequest.getPosterTemplateId(),
|
|
|
+ saveRequest.getPageShow(),
|
|
|
+ saveRequest.getPageLine(),
|
|
|
+ saveRequest.getCount(),
|
|
|
+ saveRequest.getListAudioId(),
|
|
|
+ saveRequest.getRetAudioId(),
|
|
|
+ f.getT3().toString(),
|
|
|
+ saveRequest.getIsAddQun(),
|
|
|
+ saveRequest.getBackgroundGroupId(),
|
|
|
+ saveRequest.getHomePageId(),
|
|
|
+ saveRequest.getTopAdvNum(),
|
|
|
+ saveRequest.getBottomAdvNum(),
|
|
|
+ saveRequest.getReturnLoopId(),
|
|
|
+ saveRequest.getBackgroundGroupQsId(),
|
|
|
+ saveRequest.getTopAdvBl(),
|
|
|
+ saveRequest.getBottomAdvBl(),
|
|
|
+ saveRequest.getReturnLoopBl(),
|
|
|
+ saveRequest.getGroupIdQs(),
|
|
|
+ saveRequest.getBaiduDot(),
|
|
|
+ saveRequest.getBackgroundGroupIdNewAdd(),
|
|
|
+ f.getT1(),
|
|
|
+ saveRequest.getRedirectType(),
|
|
|
+ saveRequest.getRedirectPlanId(),
|
|
|
+ saveRequest.getImportDomain(),
|
|
|
+ saveRequest.getLandingPageDomain(),
|
|
|
+ saveRequest.getTransferPageDomain(),
|
|
|
+ saveRequest.getTransferPageBl(),
|
|
|
+ saveRequest.getBackgroupDomain(),
|
|
|
+ listButton
|
|
|
+ );
|
|
|
+ return Mono.just(planNew);
|
|
|
+ }).flatMap(template::update);
|
|
|
+ Mono<String> map = planNewMono.flatMap(f1->{
|
|
|
+ Mono<Long> ml= template.delete(Query.query(Criteria.where("plan_new_id").is(f1.planNewId())),PlanNewBackgroupPoster.class);
|
|
|
+ return Mono.zip(Mono.just(f1),ml).flatMap(ff->Mono.just(f1));
|
|
|
+ }).flatMap(f -> {
|
|
|
+ Flux<PlanNewBackgroupPoster> just = getPlanNewBackgroupPosterFlux(saveRequest, f);
|
|
|
+
|
|
|
+ return Mono.zip(batchInsert(just), Mono.just(f)).flatMap(ff -> {
|
|
|
+ PlanNew t2 = ff.getT2();
|
|
|
+ return Mono.just(t2.planNewId());
|
|
|
+ });
|
|
|
+ });
|
|
|
+ return RStatus.success(map);
|
|
|
+ }
|
|
|
+
|
|
|
+ throw new BaseException("type类型错误");
|
|
|
+ }
|
|
|
+ public PlanNewBackgroupPoster fxBackgroupSettingsUpdate( ServiceGroupSettingItemRequest request,String planNewId,Integer qsOrFx){
|
|
|
+ PlanNewBackgroupPoster planNewBackgroupPoster = new PlanNewBackgroupPoster(request.getId(),
|
|
|
+
|
|
|
+ request.getAudioId(),
|
|
|
+ request.getGroupId(),
|
|
|
+ request.getImage(),
|
|
|
+ request.getKefu(),
|
|
|
+ request.getLimitTime(),
|
|
|
+ request.getLimitTimeRemark(),
|
|
|
+ request.getStatus(),
|
|
|
+ request.getIndex(),
|
|
|
+ request.getServiceGroupId(),
|
|
|
+ request.getServiceGroupType(),
|
|
|
+ qsOrFx,
|
|
|
+ ZonedDateTime.now(),
|
|
|
+ ZonedDateTime.now(),
|
|
|
+ null,
|
|
|
+ planNewId,null,null);
|
|
|
+ // template.insert(planNewBackgroupPoster).subscribe();
|
|
|
+ return planNewBackgroupPoster;
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 复制计划
|
|
|
+ * @param planNewId
|
|
|
+ * @return {@link Mono}<{@link RStatus}<{@link PlanNew}>>
|
|
|
+ */
|
|
|
+ @GetMapping("copyById/{type}/{planNewId}")
|
|
|
+ public Mono<RStatus<String>> copyById (@PathVariable("type") @NotNull Integer type,@PathVariable("planNewId") @NotNull String planNewId){
|
|
|
+ if (2 == type) {
|
|
|
+ return listeningPlanService.copyById(planNewId);
|
|
|
+ }else if (1==type){
|
|
|
+ String userName = BaseContextHandler.getUserName();
|
|
|
+ String userId = BaseContextHandler.getUserId();
|
|
|
+ Mono<PlanNew> plan_new_id = template.selectOne(Query.query(Criteria.where("plan_new_id").is(planNewId)), PlanNew.class)
|
|
|
+ .map(saveRequest -> new PlanNew(IdUtil.fastSimpleUUID(),
|
|
|
+ saveRequest.name(),
|
|
|
+ userName,
|
|
|
+ userId,
|
|
|
+ ZonedDateTime.now(),
|
|
|
+ ZonedDateTime.now(),
|
|
|
+ null,
|
|
|
+ saveRequest.type(),
|
|
|
+ IdUtil.fastSimpleUUID(),
|
|
|
+ saveRequest.groupId(),
|
|
|
+ saveRequest.posterTemplateId(),
|
|
|
+ saveRequest.pageShow(),
|
|
|
+ saveRequest.pageLine(),
|
|
|
+ saveRequest.count(),
|
|
|
+ saveRequest.listAudioId(),
|
|
|
+ saveRequest.retAudioId(),
|
|
|
+ saveRequest.link(),
|
|
|
+ saveRequest.isAddQun(),
|
|
|
+ saveRequest.backgroundGroupId(),
|
|
|
+ saveRequest.homePageId(),
|
|
|
+ saveRequest.topAdvNum(),
|
|
|
+ saveRequest.bottomAdvNum(),
|
|
|
+ saveRequest.returnLoopId(),
|
|
|
+ saveRequest.backgroundGroupQsId(),
|
|
|
+ saveRequest.topAdvBl(),
|
|
|
+ saveRequest.bottomAdvBl(),
|
|
|
+ saveRequest.returnLoopBl(),
|
|
|
+ saveRequest.groupIdQs(),
|
|
|
+ saveRequest.baiduDot(),
|
|
|
+ saveRequest.backgroundGroupIdNewAdd(),
|
|
|
+ saveRequest.previewUrl(),
|
|
|
+ saveRequest.redirectType(),
|
|
|
+ saveRequest.redirectPlanId(),
|
|
|
+ saveRequest.importDomain(),
|
|
|
+ saveRequest.landingPageDomain(),
|
|
|
+ saveRequest.transferPageDomain(),
|
|
|
+ saveRequest.transferPageBl(),
|
|
|
+ saveRequest.backgroupDomain(),
|
|
|
+ saveRequest.listButton()
|
|
|
+ )).flatMap(map -> template.insert(map));
|
|
|
+ Mono<List<PlanNewBackgroupPoster>> listening_plan_new_id1 =
|
|
|
+ template.select(Query.query(Criteria.where("plan_new_id")
|
|
|
+ .is(planNewId)), PlanNewBackgroupPoster.class)
|
|
|
+ .collectList();
|
|
|
+ Mono<String> stringMono = Mono.zip(plan_new_id, listening_plan_new_id1).flatMap(f -> {
|
|
|
+ PlanNew t1 = f.getT1();
|
|
|
+ List<PlanNewBackgroupPoster> t2 = f.getT2();
|
|
|
+ if (!t2.isEmpty()) {
|
|
|
+ List<PlanNewBackgroupPoster> collect = t2.stream().map(request -> new PlanNewBackgroupPoster(null,
|
|
|
+ request.audioId(),
|
|
|
+ request.groupId(),
|
|
|
+ request.image(),
|
|
|
+ request.kefu(),
|
|
|
+ request.limitTime(),
|
|
|
+ request.limitTimeRemark(),
|
|
|
+ request.status(),
|
|
|
+ request.index(),
|
|
|
+ request.serviceGroupId(),
|
|
|
+ request.serviceGroupType(),
|
|
|
+ request.qsOrFx(),
|
|
|
+ ZonedDateTime.now(),
|
|
|
+ null,
|
|
|
+ null,
|
|
|
+ t1.planNewId(),
|
|
|
+ request.generateImagesJson(),
|
|
|
+ request.generateImagesUrl())).collect(Collectors.toList());
|
|
|
+ Mono<List<PlanNewBackgroupPoster>> listMono =
|
|
|
+ Flux.fromIterable(collect).flatMap(entity -> template.insert(entity)).collectList();
|
|
|
+ return Mono.zip(Mono.just(t1), listMono).flatMap(ff -> {
|
|
|
+ PlanNew t11 = ff.getT1();
|
|
|
+ return Mono.just(t11.planNewId());
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ return Mono.just(t1.planNewId());
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return RStatus.success(stringMono);
|
|
|
+ }
|
|
|
+ throw new BaseException("type类型错误");
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除计划
|
|
|
+ * @param planNewId
|
|
|
+ * @return {@link Mono}<{@link RStatus}<{@link Long}>>
|
|
|
+ */
|
|
|
+ @DeleteMapping("deleteById/{type}/{planNewId}")
|
|
|
+ public Mono<RStatus<Long>> deleteById (@PathVariable("type") @NotNull Integer type,@PathVariable("planNewId") @NotNull String planNewId ){
|
|
|
+ if(1==type){
|
|
|
+ Query plan_new_id2 = Query.query(Criteria.where("plan_new_id").is(planNewId));
|
|
|
+ Mono<Long> plan_new_id = template.delete(plan_new_id2, PlanNew.class)
|
|
|
+ .switchIfEmpty(Mono.error(new BaseException("计划id异常"))) //Mono.error(new BaseException("查询海报模版 id:"+f.posterTemplateId()+"=>空"))
|
|
|
+ .onErrorResume(throwable -> Mono.error(new Exception("删除计划 " +planNewId+"---"+ type+"error:" + throwable.getMessage())));
|
|
|
+ Mono<Long> plan_new_id1 = template.count(plan_new_id2, PlanNewBackgroupPoster.class).filter(f -> f > 0)
|
|
|
+ .flatMap(f -> template.delete(plan_new_id2, PlanNewBackgroupPoster.class))
|
|
|
+ .switchIfEmpty(Mono.just(0L));
|
|
|
+ Mono<Long> longMono = Mono.zip(plan_new_id1, plan_new_id).flatMap(f -> Mono.just(f.getT1()));
|
|
|
+ return RStatus.success(longMono);
|
|
|
+ }else if(2==type) {
|
|
|
+ Query listening_plan_new_id1 = Query.query(Criteria.where("listening_plan_new_id")
|
|
|
+ .is(planNewId));
|
|
|
+ Mono<Long> listening_plan_new_id = template.delete(listening_plan_new_id1, ListeningPlanNew.class)
|
|
|
+ .switchIfEmpty(Mono.error(new BaseException("计划id异常"))) //Mono.error(new BaseException("查询海报模版 id:"+f.posterTemplateId()+"=>空"))
|
|
|
+ .onErrorResume(throwable -> Mono.error(new Exception("删除计划 " +planNewId+"---"+ type+"error:" + throwable.getMessage())));
|
|
|
+ Mono<Long> plan_new_id1 = template.count(listening_plan_new_id1, ListeningPlanNewBackgroupPoster.class).filter(f -> f > 0)
|
|
|
+ .flatMap(f -> template.delete(listening_plan_new_id1, ListeningPlanNewBackgroupPoster.class))
|
|
|
+ .switchIfEmpty(Mono.just(0L));
|
|
|
+ Mono<Long> longMono = Mono.zip(listening_plan_new_id, plan_new_id1).flatMap(f -> Mono.just(f.getT1()));
|
|
|
+ return RStatus.success(longMono);
|
|
|
+ }
|
|
|
+ throw new BaseException("type类型错误");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 计划-编辑回显详情
|
|
|
+ * @param planNewId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @GetMapping("planNewInfo/{type}/{planNewId}")
|
|
|
+ public Mono<RStatus<PlanNewAllRs>> planNewInfo(@PathVariable("type") @NotNull Integer type,@PathVariable("planNewId") @NotNull String planNewId){
|
|
|
+ if (1 == type) {
|
|
|
+ Mono<PlanNewAllRs> planNewAllRsMono = template.selectOne(Query.query(Criteria.where("plan_new_id").is(planNewId)), PlanNew.class)
|
|
|
+ .flatMap(saveRequest -> {
|
|
|
+ PlanNewAllRs planNewAllRs = new PlanNewAllRs(saveRequest.planNewId(),
|
|
|
+ saveRequest.name(),
|
|
|
+ saveRequest.createUser(),
|
|
|
+ saveRequest.createId(),
|
|
|
+ ZonedDateTime.now(),
|
|
|
+ ZonedDateTime.now(),
|
|
|
+ null,
|
|
|
+ saveRequest.type(),
|
|
|
+ saveRequest.code(),
|
|
|
+ saveRequest.groupId(),
|
|
|
+ saveRequest.posterTemplateId(),
|
|
|
+ saveRequest.pageShow(),
|
|
|
+ saveRequest.pageLine(),
|
|
|
+ saveRequest.count(),
|
|
|
+ saveRequest.listAudioId(),
|
|
|
+ saveRequest.retAudioId(),
|
|
|
+ saveRequest.link(),
|
|
|
+ saveRequest.isAddQun(),
|
|
|
+ saveRequest.backgroundGroupId(),
|
|
|
+ saveRequest.homePageId(),
|
|
|
+ saveRequest.topAdvNum(),
|
|
|
+ saveRequest.bottomAdvNum(),
|
|
|
+ saveRequest.returnLoopId(),
|
|
|
+ saveRequest.backgroundGroupQsId(),
|
|
|
+ saveRequest.topAdvBl(),
|
|
|
+ saveRequest.bottomAdvBl(),
|
|
|
+ saveRequest.returnLoopBl(),
|
|
|
+ saveRequest.groupIdQs(),
|
|
|
+ saveRequest.baiduDot(),
|
|
|
+ saveRequest.backgroundGroupIdNewAdd(),
|
|
|
+ saveRequest.previewUrl(),
|
|
|
+ saveRequest.redirectType(),
|
|
|
+ saveRequest.redirectPlanId(),
|
|
|
+ saveRequest.listButton(),
|
|
|
+ Objects.nonNull(saveRequest.importDomain()) && !"".equals(saveRequest.importDomain().trim()) ? Integer.valueOf(saveRequest.importDomain()) : null,
|
|
|
+ Objects.nonNull(saveRequest.landingPageDomain()) && !"".equals(saveRequest.landingPageDomain().trim()) ? Integer.valueOf(saveRequest.landingPageDomain()) : null,
|
|
|
+ // saveRequest.landingPageDomain(),
|
|
|
+ Objects.nonNull(saveRequest.transferPageDomain()) && !"".equals(saveRequest.transferPageDomain().trim()) ?Integer.valueOf(saveRequest.transferPageDomain()):null,
|
|
|
+
|
|
|
+ //saveRequest.transferPageDomain(),
|
|
|
+ saveRequest.transferPageBl(),
|
|
|
+ Objects.nonNull(saveRequest.backgroupDomain()) && !"".equals(saveRequest.backgroupDomain().trim()) ?Integer.valueOf(saveRequest.backgroupDomain()):null
|
|
|
+
|
|
|
+ // saveRequest.backgroupDomain()
|
|
|
+ );
|
|
|
+ return Mono.just(planNewAllRs);
|
|
|
+ }
|
|
|
+ ).switchIfEmpty(Mono.error(new BaseException("计划id异常"))) //Mono.error(new BaseException("查询海报模版 id:"+f.posterTemplateId()+"=>空"))
|
|
|
+ .onErrorResume(throwable -> Mono.error(new Exception("计划id异常")));
|
|
|
+ return RStatus.success(planNewAllRsMono);
|
|
|
+ }else if (2 == type) {
|
|
|
+ Mono<PlanNewAllRs> planNewAllRsMono = template
|
|
|
+ .selectOne(Query.query(Criteria.where("listening_plan_new_id").is(planNewId)),
|
|
|
+ ListeningPlanNew.class)
|
|
|
+ .flatMap(saveRequest -> {
|
|
|
+ PlanNewAllRs planNewAllRs = new PlanNewAllRs(saveRequest.listeningPlanNewId(),
|
|
|
+ saveRequest.name(),
|
|
|
+ saveRequest.createUser(),
|
|
|
+ saveRequest.createId(),
|
|
|
+ ZonedDateTime.now(),
|
|
|
+ ZonedDateTime.now(),
|
|
|
+ null,
|
|
|
+ saveRequest.type(),
|
|
|
+ saveRequest.code(),
|
|
|
+ saveRequest.groupId(),
|
|
|
+ saveRequest.posterTemplateId(),
|
|
|
+ saveRequest.pageShow(),
|
|
|
+ saveRequest.pageLine(),
|
|
|
+ null,
|
|
|
+ null,
|
|
|
+ null,
|
|
|
+ saveRequest.link(),
|
|
|
+ null,
|
|
|
+ saveRequest.backgroundGroupId(),
|
|
|
+ null,
|
|
|
+ null,
|
|
|
+ null,
|
|
|
+ null,
|
|
|
+ null,
|
|
|
+ null,
|
|
|
+ null,
|
|
|
+ null,
|
|
|
+ null,
|
|
|
+ saveRequest.baiduDot(),
|
|
|
+ null,
|
|
|
+ saveRequest.previewUrl(),
|
|
|
+ null,
|
|
|
+ null,
|
|
|
+ saveRequest.listButton(),
|
|
|
+ null,
|
|
|
+ null,
|
|
|
+ null,
|
|
|
+ null,
|
|
|
+ null
|
|
|
+
|
|
|
+ );
|
|
|
+ return Mono.just(planNewAllRs);
|
|
|
+ }
|
|
|
+ ).switchIfEmpty(Mono.error(new BaseException("计划id异常"))) //Mono.error(new BaseException("查询海报模版 id:"+f.posterTemplateId()+"=>空"))
|
|
|
+ .onErrorResume(throwable -> Mono.error(new Exception("计划id异常")));
|
|
|
+ return RStatus.success(planNewAllRsMono);
|
|
|
+ }
|
|
|
+ throw new BaseException("type类型错误");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 计划列表-下拉(查看自己创建的)(V2.0)
|
|
|
+ * @param request
|
|
|
+ * @return {@link Mono}<{@link RStatus}<{@link Paged}<{@link PlanNew}>>>
|
|
|
+ */
|
|
|
+ @PostMapping("planSelectSelf")
|
|
|
+ public Mono<RStatus<List<PlanNew>>> planSelectSelf(@RequestBody PosterTemSelectSelf request) {
|
|
|
+
|
|
|
+ if (Objects.isNull(request.getUserId())) {
|
|
|
+ request.setUserId( BaseContextHandler.getUserId());
|
|
|
+ }
|
|
|
+ Criteria criteria= Criteria.where("create_id").is(request.getUserId()) ; //poster_template_id
|
|
|
+ if (Objects.nonNull(request.getName()) && "" != request.getName()) {
|
|
|
+ criteria = criteria.and("name").like("%"+request.getName()+"%");
|
|
|
+ }
|
|
|
+ Mono<List<PlanNew>> listMono = template.select(Query.query(criteria), PlanNew.class).collectList();
|
|
|
+ return RStatus.successList(listMono);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 计划列表-下拉
|
|
|
+ * @param request
|
|
|
+ * @return {@link Mono}<{@link RStatus}<{@link List}<{@link SelectPlanRes1}>>>
|
|
|
+ */
|
|
|
+ @PostMapping("planSelect")
|
|
|
+ public Mono<RStatus<List<SelectPlanRes1>>> planSelect(@RequestBody PosterTemSelect request) {
|
|
|
+ Criteria criteria= Criteria.empty() ; //poster_template_id
|
|
|
+ if (Objects.nonNull(request.getName()) && "" != request.getName()) {
|
|
|
+ criteria = criteria.and("name").is(request.getName());
|
|
|
+ }
|
|
|
+ Mono<List<SelectPlanRes1>> listMono = template.select(Query.query(criteria), PlanNew.class).flatMap(fm -> {
|
|
|
+ SelectPlanRes1 selectPlanRes1 = new SelectPlanRes1();
|
|
|
+ selectPlanRes1.setName(fm.name());
|
|
|
+ selectPlanRes1.setType(1);
|
|
|
+ selectPlanRes1.setPlanNewId(fm.planNewId());
|
|
|
+ return Mono.just(selectPlanRes1);
|
|
|
+ }).collectList();
|
|
|
+ Mono<List<SelectPlanRes1>> listMono1 = template.select(Query.query(criteria), ListeningPlanNew.class).flatMap(fm -> {
|
|
|
+ SelectPlanRes1 selectPlanRes1 = new SelectPlanRes1();
|
|
|
+ selectPlanRes1.setName(fm.name());
|
|
|
+ selectPlanRes1.setType(2);
|
|
|
+ selectPlanRes1.setPlanNewId(fm.listeningPlanNewId());
|
|
|
+ return Mono.just(selectPlanRes1);
|
|
|
+ }).collectList();
|
|
|
+ Mono<List<SelectPlanRes1>> arrayListMono = Mono.zip(listMono, listMono1).flatMap(f -> {
|
|
|
+ List<SelectPlanRes1> t1 = f.getT1();
|
|
|
+ List<SelectPlanRes1> t2 = f.getT2();
|
|
|
+ ArrayList<SelectPlanRes1> objects = new ArrayList<>();
|
|
|
+ objects.addAll(t1);
|
|
|
+ objects.addAll(t2);
|
|
|
+ return Mono.just(objects);
|
|
|
+ });
|
|
|
+ return RStatus.successList(arrayListMono);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 计划列表
|
|
|
+ * @param request
|
|
|
+ * @return {@link Mono}<{@link RStatus}<{@link Paged}<{@link ListeningPlanNewRes2}>>>
|
|
|
+ */
|
|
|
+ @PostMapping("planList")
|
|
|
+ public Mono<RStatus<Paged<ListeningPlanNewRes2>>> page(@RequestBody PlanReqPage request) {
|
|
|
+ if (2 == request.getType()) {
|
|
|
+ return listeningPlanService.page(request);
|
|
|
+ }else {
|
|
|
+ return getType1(request);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ private Mono<RStatus<Paged<ListeningPlanNewRes2>>> getType1(PlanReqPage request) {
|
|
|
+ Criteria criteria= Criteria.empty() ; //poster_template_id
|
|
|
+ if (Objects.nonNull(request.getCode()) && "" != request.getCode().trim()) {
|
|
|
+ criteria = criteria.and("code").like("%"+request.getCode()+"%");
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(request.getName()) && "" != request.getName().trim()) {
|
|
|
+ criteria = criteria.and("name").like("%"+request.getName()+"%");
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(request.getCreateUser()) && "" != request.getCreateUser().trim()) {
|
|
|
+ criteria = criteria.and("create_user").like("%"+request.getCreateUser()+"%");
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(request.getPosterTemplateId()) && 0L != request.getPosterTemplateId()) {
|
|
|
+ criteria = criteria.and("poster_template_id").is(request.getPosterTemplateId());
|
|
|
+ }
|
|
|
+// if (Objects.nonNull(request.getType()) && 0L != request.getType()) {
|
|
|
+// criteria = criteria.and("type").is(request.getType());
|
|
|
+// }
|
|
|
+ Query query = Query.query(criteria);
|
|
|
+ Criteria finalCriteria = criteria;
|
|
|
+ int skip = (request.getPage() - 1) * request.getSize();
|
|
|
+ int limit = request.getSize();
|
|
|
+ Mono<Long> count = template.count(query, PlanNew.class);
|
|
|
+ Flux<PlanNew> created_at = template.select(Query.query(finalCriteria)
|
|
|
+ .offset(skip)
|
|
|
+ .limit(limit)
|
|
|
+ .sort(Sort.by(Sort.Order.desc("created_at"))), PlanNew.class);
|
|
|
+ Mono<List<ListeningPlanNewRes2>> listMono = created_at.flatMap(f -> {
|
|
|
+ Mono<String> poster_template_id = template.selectOne(Query.query(Criteria.where("poster_template_id")
|
|
|
+ .is(f.posterTemplateId())), PosterTemplate.class).flatMap(f0 -> Mono.just(f0.posterTemplateName()))
|
|
|
+ .switchIfEmpty(Mono.just("")) //Mono.error(new BaseException("查询海报模版 id:"+f.posterTemplateId()+"=>空"))
|
|
|
+ .onErrorResume(throwable -> Mono.error(new Exception("查询海报模版 id:" + f.posterTemplateId() + "error:" + throwable.getMessage())));
|
|
|
+ Mono<String> id = template.selectOne(Query.query(Criteria.where("id").is(f.groupId())), GroupType.class)
|
|
|
+ .flatMap(f1 -> Mono.just(f1.name()))
|
|
|
+ .switchIfEmpty(Mono.just(""))//Mono.error(new BaseException("查询GroupType id:"+f.groupId()+"=>空"))
|
|
|
+ .onErrorResume(throwable -> Mono.error(new Exception("查询GroupType id:" + f.groupId() + "error:" + throwable.getMessage())));
|
|
|
+ return Mono.zip(Mono.just(f), poster_template_id, id).flatMap(ff -> {
|
|
|
+ PlanNew t1 = ff.getT1();
|
|
|
+ ListeningPlanNewRes2 listeningPlanNewRes = new ListeningPlanNewRes2();
|
|
|
+ listeningPlanNewRes.setPlanNewId(t1.planNewId());
|
|
|
+ listeningPlanNewRes.setCode(t1.code());
|
|
|
+ listeningPlanNewRes.setName(t1.name());
|
|
|
+ listeningPlanNewRes.setCreatedAt(t1.createdAt());
|
|
|
+ listeningPlanNewRes.setCreateUser(t1.createUser());
|
|
|
+ listeningPlanNewRes.setType(t1.type());
|
|
|
+ listeningPlanNewRes.setGroupName(ff.getT3());
|
|
|
+ listeningPlanNewRes.setPreviewUrl(t1.previewUrl());
|
|
|
+ listeningPlanNewRes.setPosterTemplateName(ff.getT2());
|
|
|
+ return Mono.just(listeningPlanNewRes);
|
|
|
+ });
|
|
|
+ }).collectList();
|
|
|
+ Mono<Paged<ListeningPlanNewRes2>> pagedMono = Mono.zip(count, listMono).flatMap(ff -> {
|
|
|
+ Long t1 = ff.getT1();
|
|
|
+ List<ListeningPlanNewRes2> t2 = ff.getT2().stream().sorted(Comparator.comparing(ListeningPlanNewRes::getCreatedAt).reversed()).collect(Collectors.toList());
|
|
|
+ Paged<ListeningPlanNewRes2> planNewResPaged = new Paged<>(t1, t2, request.getPage(), request.getSize());
|
|
|
+ return Mono.just(planNewResPaged);
|
|
|
+ });
|
|
|
+ return RStatus.successList(pagedMono);
|
|
|
+ }
|
|
|
+}
|