Просмотр исходного кода

plan-java v0.06

(cherry picked from commit 4a95436fd693bd4bb376650da0c49f73123f25ca)
MOKASZ\lw12420 2 лет назад
Родитель
Сommit
75e8efc7cd

+ 3 - 2
launch-admin/src/main/java/com/webflux/launchadmin/global/GlobalExceptionHandler.java

@@ -2,6 +2,7 @@ package com.webflux.launchadmin.global;
 
 import com.alibaba.cola.dto.Response;
 import com.webflux.launchcommon.returnObj.RStatus;
+import com.webflux.launchcommon.returnObj.RW;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.ExceptionHandler;
@@ -16,8 +17,8 @@ public class GlobalExceptionHandler {
     @ResponseBody
     @ResponseStatus(HttpStatus.BAD_REQUEST)
     @ExceptionHandler(Exception.class)
-    public Response handleException(Exception e) {
+    public Mono<RW<Object>> handleException(Exception e) {
         log.error(e.toString());
-        return Response.buildFailure("异常", e.getMessage());
+        return RW.fail("500",e.getMessage(),Mono.just(e.getMessage()));
     }
 }

+ 42 - 39
launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/planNew/PlanNewController.java

@@ -1,10 +1,13 @@
 package com.webflux.launchadmin.mysql.controller.planNew;
 
 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.planNew.req.*;
 import com.webflux.launchadmin.mysql.controller.planNew.res.BackgroupImageRes;
 import com.webflux.launchadmin.mysql.controller.planNew.res.DataLists;
 import com.webflux.launchadmin.mysql.controller.planNew.res.PosterTemplateRes;
+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;
@@ -23,6 +26,8 @@ import java.time.ZonedDateTime;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
+import java.util.Optional;
+import java.util.concurrent.Phaser;
 
 /**
  * 计划
@@ -58,29 +63,31 @@ public class PlanNewController {
      */
     @GetMapping("backgroupImageRes/{id}")
     public Mono<RStatus<BackgroupImageRes>> backgroupImageRes(@PathVariable("id") Long id){
-        Mono<BackgroupImageRes> map = Mono.just(new BackgroupImageRes())
-              .map(dataLists -> {
-            template.selectOne(Query.query(Criteria.where("id").is(dataLists.getPlanNew().backgroundGroupId())), BackgroupImage.class)
-                    .subscribe(dataLists::setBackgroupImage);
-            return dataLists;
-        }).map(dataLists -> {
-            template.select(Query.query(Criteria.where("group_id").is(dataLists.getPlanNew().backgroundGroupId())), BackgroupImageItem.class).collectList()
-                    .subscribe(dataLists::setBackgroupImageItemList);
-            return dataLists;
+        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)), 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(map);
+        return RStatus.successList(zip);
     }
 
 
     /**
      * 客服组-下拉 ( By status)
-     * @param request
+     * @param status
      * @return {@link Mono}<{@link RStatus}<{@link List}<{@link ReturnLoop}>>>
      */
     @GetMapping("serviceGroupSlt")
-    public Mono<RStatus<List<ServiceGroup>>> serviceGroupSlt (@RequestBody ServiceGroupRequest request){
-        Mono<List<ServiceGroup>> status = template.select(Query.query(Criteria.where("status").is(request.getStatus())), ServiceGroup.class).collectList();
-        return RStatus.successList(status);
+    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);
 
     }
 
@@ -292,32 +299,28 @@ public class PlanNewController {
         Criteria finalCriteria = criteria;
         int skip  = (request.getPage() - 1) * request.getSize();
         int limit = request.getPage() * request.getSize();
-        Mono<Paged<PosterTemplateRes>> pagedMono = template.count(query, PosterTemplate.class).flatMap(fm ->
-                template.select(Query.query(finalCriteria)
-                        .offset(skip)
-                        .limit(limit)
-                        .sort(Sort.by(Sort.Order.desc("created_at"))),PosterTemplate.class)
-                        .collectList()
-                        .map(list -> {
-                            ArrayList<PosterTemplateRes> posterTemplateRes = new ArrayList<>();
-                            list.forEach(f->{
-                                Long aLong = f.posterTemplateId();
-                                template.count(Query.query(Criteria.where("poster_template_id").is(aLong)),Poster.class).subscribe(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());
-                                    posterTemplateRes.add(posterTemplateRes1);
-                                });
-                            });
-                          return   new Paged<>(fm, posterTemplateRes,request.getPage(),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;
+                })
         );
-        return RStatus.successList(pagedMono);
+        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);
+
     }