|
|
@@ -0,0 +1,332 @@
|
|
|
+package com.webflux.launchadmin.mysql.controller.planNew;
|
|
|
+
|
|
|
+import com.webflux.launchadmin.config.BaseContextHandler;
|
|
|
+import com.webflux.launchadmin.mysql.controller.lbOut.resp.DataList;
|
|
|
+import com.webflux.launchadmin.mysql.controller.planNew.req.*;
|
|
|
+import com.webflux.launchadmin.mysql.entity.lb.HomePageTempItem;
|
|
|
+import com.webflux.launchadmin.mysql.entity.planNew.*;
|
|
|
+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.Mono;
|
|
|
+
|
|
|
+import java.time.ZonedDateTime;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Objects;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 计划
|
|
|
+ * @author lw12420
|
|
|
+ * @date 2024/05/21
|
|
|
+ */
|
|
|
+@RestController
|
|
|
+@RequestMapping("in/planNew")
|
|
|
+public class PlanNewController {
|
|
|
+ @Resource
|
|
|
+ private R2dbcEntityTemplate template;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 返回广告下拉名称模糊查询
|
|
|
+ * @param request
|
|
|
+ * @return {@link Mono}<{@link RStatus}<{@link Long}>>
|
|
|
+ */
|
|
|
+ @GetMapping("retrunloopSlt")
|
|
|
+ public Mono<RStatus<List<ReturnLoop>>> retrunloopSlt (@RequestBody ReturnLoopRequest request){
|
|
|
+ Criteria criteria= Criteria.empty() ; //poster_template_id
|
|
|
+ if (Objects.nonNull(request.getName()) && "" != request.getName()) {
|
|
|
+ criteria = criteria.and("name").like(request.getName());
|
|
|
+ }
|
|
|
+ Mono<List<ReturnLoop>> listMono = template.select(Query.query(criteria), ReturnLoop.class).collectList();
|
|
|
+ return RStatus.success(listMono);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 背景组设置下拉名称模糊查询
|
|
|
+ * @param backgroupRequest
|
|
|
+ * @return {@link Mono}<{@link RStatus}<{@link Long}>>
|
|
|
+ */
|
|
|
+ @GetMapping("backgroupSlt")
|
|
|
+ public Mono<RStatus<List<BackgroupImage>>> backgroupSlt (@RequestBody BackgroupRequest backgroupRequest){
|
|
|
+ Criteria criteria= Criteria.empty() ; //poster_template_id
|
|
|
+ if (Objects.nonNull(backgroupRequest.getName()) && "" != backgroupRequest.getName()) {
|
|
|
+ criteria = criteria.and("name").like(backgroupRequest.getName());
|
|
|
+ }
|
|
|
+ Mono<List<BackgroupImage>> listMono = template.select(Query.query(criteria), BackgroupImage.class).collectList();
|
|
|
+ return RStatus.success(listMono);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 音频下拉名称模糊查询
|
|
|
+ * @param audioRequest
|
|
|
+ * @return {@link Mono}<{@link RStatus}<{@link Long}>>
|
|
|
+ */
|
|
|
+ @GetMapping("audioSlt")
|
|
|
+ public Mono<RStatus<List<Audio>>> audio (@RequestBody AudioRequest audioRequest){
|
|
|
+ Criteria criteria= Criteria.empty() ; //poster_template_id
|
|
|
+ if (Objects.nonNull(audioRequest.getName()) && "" != audioRequest.getName()) {
|
|
|
+ criteria = criteria.and("name").like(audioRequest.getName());
|
|
|
+ }
|
|
|
+ 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){
|
|
|
+ Poster poster = new Poster(null, posterRequset.getPosterTemplateId()
|
|
|
+ ,posterRequset.getPosterTemplate(), BaseContextHandler.getUserName(),
|
|
|
+ BaseContextHandler.getUserId(), ZonedDateTime.now(),
|
|
|
+ ZonedDateTime.now());
|
|
|
+ Mono<Poster> insert = template.insert(poster);
|
|
|
+ return RStatus.success(insert);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 海报修改
|
|
|
+ * @param posterRequset
|
|
|
+ * @return {@link Mono}<{@link RStatus}<{@link PlanNew}>>
|
|
|
+ */
|
|
|
+ @PostMapping("updatePoster")
|
|
|
+ public Mono<RStatus<Long>> updatePoster(@RequestBody PosterRequest posterRequset){
|
|
|
+
|
|
|
+ Criteria empty = Criteria.where("poster_id").is(posterRequset.getPosterId());
|
|
|
+ Update update = Update.update("updated_at", ZonedDateTime.now());
|
|
|
+ if(Objects.nonNull(posterRequset.getPosterTemplate()) && !"".equals(posterRequset.getPosterTemplate())){
|
|
|
+ update.set("poster_template",posterRequset.getPosterTemplate());
|
|
|
+ }
|
|
|
+ Mono<Long> update1 = template.update(Query.query(empty), update, Poster.class);
|
|
|
+ return RStatus.success(update1);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 海报删除
|
|
|
+ * @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 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.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 saveRequest
|
|
|
+ * @return {@link Mono}<{@link RStatus}<{@link PlanNew}>>
|
|
|
+ */
|
|
|
+ @PostMapping("savePlan")
|
|
|
+ public Mono<RStatus<PlanNew>> savePlan(@RequestBody PlanReq saveRequest){
|
|
|
+ PlanNew plan = new PlanNew(null,
|
|
|
+ saveRequest.getName(),
|
|
|
+ BaseContextHandler.getUserName(),
|
|
|
+ BaseContextHandler.getUserId(),
|
|
|
+ ZonedDateTime.now(),
|
|
|
+ ZonedDateTime.now(),
|
|
|
+ null,
|
|
|
+ saveRequest.getType(),
|
|
|
+ saveRequest.getCode(),
|
|
|
+ saveRequest.getGroupId(),
|
|
|
+ saveRequest.getPosterTemplateId(),
|
|
|
+ saveRequest.getPageShow(),
|
|
|
+ saveRequest.getPageLine(),
|
|
|
+ saveRequest.getCount(),
|
|
|
+ saveRequest.getListAudioId(),
|
|
|
+ saveRequest.getRetAudioId(),
|
|
|
+ saveRequest.getLink(),
|
|
|
+ saveRequest.getIsAddQun(),
|
|
|
+ saveRequest.getBackgroundGroupId(),
|
|
|
+ saveRequest.getHomePageId(),
|
|
|
+ saveRequest.getTopAdvNum(),
|
|
|
+ saveRequest.getBottomAdvNum(),
|
|
|
+ saveRequest.getReturnLoopId()
|
|
|
+ );
|
|
|
+ Mono<PlanNew> insert = template.insert(plan);
|
|
|
+ return RStatus.success(insert);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 修改计划
|
|
|
+ * @param saveRequest
|
|
|
+ * @return {@link Mono}<{@link RStatus}<{@link PlanNew}>>
|
|
|
+ */
|
|
|
+ @PostMapping("updatePlan")
|
|
|
+ public Mono<RStatus<PlanNew>> updatePlan(@RequestBody PlanReq saveRequest){
|
|
|
+ Mono<PlanNew> plan_new_id = template.selectOne(Query.query(Criteria.where("plan_new_id").is(saveRequest.getPlanNewId())), PlanNew.class)
|
|
|
+ .map(map -> new PlanNew(saveRequest.getPlanNewId(),
|
|
|
+ saveRequest.getName(),
|
|
|
+ map.createUser(),
|
|
|
+ map.createId(),
|
|
|
+ map.createdAt(),
|
|
|
+ ZonedDateTime.now(),
|
|
|
+ map.deletedAt(),
|
|
|
+ saveRequest.getType(),
|
|
|
+ saveRequest.getCode(),
|
|
|
+ saveRequest.getGroupId(),
|
|
|
+ saveRequest.getPosterTemplateId(),
|
|
|
+ saveRequest.getPageShow(),
|
|
|
+ saveRequest.getPageLine(),
|
|
|
+ saveRequest.getCount(),
|
|
|
+ saveRequest.getListAudioId(),
|
|
|
+ saveRequest.getRetAudioId(),
|
|
|
+ saveRequest.getLink(),
|
|
|
+ saveRequest.getIsAddQun(),
|
|
|
+ saveRequest.getBackgroundGroupId(),
|
|
|
+ saveRequest.getHomePageId(),
|
|
|
+ saveRequest.getTopAdvNum(),
|
|
|
+ saveRequest.getBottomAdvNum(),
|
|
|
+ saveRequest.getReturnLoopId()
|
|
|
+ )).map(map -> {
|
|
|
+ template.update(map);
|
|
|
+ return map;
|
|
|
+ });
|
|
|
+ return RStatus.success(plan_new_id);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 复制计划
|
|
|
+ * @param planNewId
|
|
|
+ * @return {@link Mono}<{@link RStatus}<{@link PlanNew}>>
|
|
|
+ */
|
|
|
+ @GetMapping("copyById/{planNewId}")
|
|
|
+ public Mono<RStatus<PlanNew>> copyById (@PathVariable("planNewId") @NotNull Long planNewId){
|
|
|
+ Mono<PlanNew> plan_new_id = template.selectOne(Query.query(Criteria.where("plan_new_id").is(planNewId)), PlanNew.class)
|
|
|
+ .map(saveRequest -> new PlanNew(saveRequest.planNewId(),
|
|
|
+ saveRequest.name(),
|
|
|
+ BaseContextHandler.getUserName(),
|
|
|
+ BaseContextHandler.getUserId(),
|
|
|
+ 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()
|
|
|
+ )).map(map -> {
|
|
|
+ template.update(map);
|
|
|
+ return map;
|
|
|
+ });
|
|
|
+ return RStatus.success(plan_new_id);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除计划
|
|
|
+ * @param planNewId
|
|
|
+ * @return {@link Mono}<{@link RStatus}<{@link Long}>>
|
|
|
+ */
|
|
|
+ @DeleteMapping("deleteById/{planNewId}")
|
|
|
+ public Mono<RStatus<Long>> deleteById (@PathVariable("planNewId") @NotNull Long planNewId){
|
|
|
+ Mono<Long> plan_new_id = template.delete(Query.query(Criteria.where("plan_new_id").is(planNewId)), PlanNew.class);
|
|
|
+ return RStatus.success(plan_new_id);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 计划列表
|
|
|
+ * @param request
|
|
|
+ * @return {@link Mono}<{@link RStatus}<{@link Paged}<{@link PlanNew}>>>
|
|
|
+ */
|
|
|
+ @PostMapping("planList")
|
|
|
+ public Mono<RStatus<Paged<PlanNew>>> page(@RequestBody PlanReqPage request) {
|
|
|
+ Criteria criteria= Criteria.empty() ; //poster_template_id
|
|
|
+ if (Objects.nonNull(request.getCode()) && "" != request.getCode()) {
|
|
|
+ criteria = criteria.and("code").is(request.getCode());
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(request.getName()) && "" != request.getName()) {
|
|
|
+ criteria = criteria.and("name").is(request.getName());
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(request.getCreateUser()) && "" != request.getCreateUser()) {
|
|
|
+ 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.getPage() * request.getSize();
|
|
|
+ Mono<Paged<PlanNew>> pagedMono = template.count(query, PlanNew.class).flatMap(fm ->
|
|
|
+ template.select(Query.query(finalCriteria)
|
|
|
+ .offset(skip)
|
|
|
+ .limit(limit)
|
|
|
+ .sort(Sort.by(Sort.Order.desc("create_time"))),PlanNew.class)
|
|
|
+ .collectList()
|
|
|
+ .map(list -> new Paged<>(fm, list,request.getPage(),request.getSize()))
|
|
|
+ );
|
|
|
+ return RStatus.successList(pagedMono);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+}
|