فهرست منبع

Merge branch 'pro' of http://git.mokasz.com/liuwei/launch-webFlux-platform into pro

volta 2 سال پیش
والد
کامیت
94a7a42ce0

+ 8 - 8
launch-admin/src/main/java/com/webflux/launchadmin/config/LoginWebFiter.java

@@ -111,7 +111,7 @@ public class LoginWebFiter implements WebFilter {
 
     public Boolean getUser(String cookie) throws IOException {
         if (Objects.isNull(cookie)) {
-            log.error("111111111");
+            log.warn("111111111, no cookie");
             return false;
         }
         if(UserContext.cMap.containsKey(cookie)){
@@ -129,14 +129,14 @@ public class LoginWebFiter implements WebFilter {
             HttpEntity entity = response.getEntity();
             String result = EntityUtils.toString(entity);
             EntityUtils.consume(entity);
-            log.error("3");
+            log.warn("3");
             if (Objects.nonNull(result)) {
-                log.error("4");
+                log.warn("4");
                 JSONObject jsonObject = JSONUtil.parseObj(result);
                 if (jsonObject.containsKey("code") && jsonObject.get("code", Integer.class) == 200) {
-                    log.error("5");
+                    log.warn("5");
                     if(jsonObject.containsKey("data")){
-                        log.error("7");
+                        log.warn("7");
                         XxlSsoUser data = jsonObject.get("data", XxlSsoUser.class);
                         BaseContextHandler.setUserId(data.getUserid());
                         BaseContextHandler.setUserName(data.getUsername());
@@ -145,19 +145,19 @@ public class LoginWebFiter implements WebFilter {
                         return true;
                     }
                 }else if(jsonObject.containsKey("code") && jsonObject.get("code", Integer.class) == 501){
-                    log.error("7.1");
+                    log.warn("7.1");
                     return false;
                 }else {
                     return true;
                 }
             }
-            log.error("8");
+            log.warn("8");
         } catch (Exception e) {
             return true;
         } finally {
             response.close();
         }
-        log.error("2222222222222");
+        log.warn("2222222222222");
         return true;
 
     }

+ 87 - 5
launch-admin/src/main/java/com/webflux/launchadmin/global/GlobalExceptionHandler.java

@@ -1,24 +1,106 @@
 package com.webflux.launchadmin.global;
 
-import com.alibaba.cola.dto.Response;
-import com.webflux.launchcommon.returnObj.RStatus;
+import com.alibaba.fastjson.JSON;
+import com.plumelog.core.util.LogExceptionStackTrace;
 import com.webflux.launchcommon.returnObj.RW;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.dao.DataAccessException;
 import org.springframework.http.HttpStatus;
+import org.springframework.util.MultiValueMap;
+import org.springframework.validation.BindException;
+import org.springframework.web.bind.MethodArgumentNotValidException;
 import org.springframework.web.bind.annotation.ExceptionHandler;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.ResponseStatus;
 import org.springframework.web.bind.annotation.RestControllerAdvice;
+import org.springframework.web.multipart.MaxUploadSizeExceededException;
+import org.springframework.web.server.ServerWebExchange;
 import reactor.core.publisher.Mono;
 
+import javax.security.auth.login.AccountExpiredException;
+import java.nio.file.AccessDeniedException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/**
+ * @author moka
+ */
 @RestControllerAdvice
 @Slf4j
 public class GlobalExceptionHandler {
     @ResponseBody
     @ResponseStatus(HttpStatus.BAD_REQUEST)
+    @ExceptionHandler(BaseException.class)
+    public Mono<RW<Object>> handleException(BaseException e, ServerWebExchange exchange) {
+        log.warn("接口异常 uri={} e={}", exchange.getRequest().getPath().value(), LogExceptionStackTrace.erroStackTrace(e));
+        return RW.fail("500", e.getMessage(), Mono.just(e.getMessage()));
+    }
+
+    /**
+     * 文件上传异常
+     */
+    @ExceptionHandler(MaxUploadSizeExceededException.class)
+    public Mono<RW<Object>> baseException(MaxUploadSizeExceededException e) {
+        return RW.fail("文件大小超出限制,请修改后重新上传。", Mono.just(e.getMessage()));
+    }
+
+    @ExceptionHandler(AccessDeniedException.class)
+    public Mono<RW<Object>> handleAuthorizationException(ServerWebExchange exchange, AccessDeniedException e) {
+        log.warn("接口异常 uri = {} e = {}", exchange.getRequest().getPath().value(), LogExceptionStackTrace.erroStackTrace(e));
+        return RW.fail(HttpStatus.FORBIDDEN.toString(), "没有权限,请联系管理员授权", Mono.just(e.getMessage()));
+    }
+
+    @ExceptionHandler(AccountExpiredException.class)
+    public Mono<RW<Object>> handleAccountExpiredException(ServerWebExchange exchange, AccountExpiredException e) {
+        log.warn("接口异常 uri = {} e = {}", exchange.getRequest().getPath().value(), LogExceptionStackTrace.erroStackTrace(e));
+        return RW.fail(e.getMessage(), Mono.just(e.getMessage()));
+    }
+
+    @ExceptionHandler(DataAccessException.class)
+    public Mono<RW<Object>> handleDataAccessException(ServerWebExchange exchange, AccountExpiredException e) {
+        log.error("接口异常 uri = {} e = {}", exchange.getRequest().getPath().value(), LogExceptionStackTrace.erroStackTrace(e));
+        return RW.fail(e.getMessage(), Mono.just(e.getMessage()));
+    }
+
     @ExceptionHandler(Exception.class)
-    public Mono<RW<Object>> handleException(Exception e) {
-        log.error(e.toString());
-        return RW.fail("500",e.getMessage(),Mono.just(e.getMessage()));
+    public Mono<RW<Object>> handleException(ServerWebExchange exchange, Exception e) {
+        if (e instanceof BaseException) {
+            try {
+                Map<String, Object> logger = new HashMap<>();
+                MultiValueMap<String, String> queryParams = exchange.getRequest().getQueryParams();
+                logger.put("param", queryParams);
+                String paramStr = JSON.toJSONString(logger);
+                log.info("裂变项目api请求记录:{}:{}", exchange.getRequest().getPath().value(), paramStr);
+            } catch (Exception e1) {
+                log.warn("裂变项目api请求记录异常:{}", LogExceptionStackTrace.erroStackTrace(e1));
+            }
+            log.warn("接口异常 uri= {} e= {}", exchange.getRequest().getPath().value(), LogExceptionStackTrace.erroStackTrace(e));
+        } else {
+            log.error("接口异常 uri = {} e = {}", exchange.getRequest().getPath().value(), LogExceptionStackTrace.erroStackTrace(e));
+        }
+        return RW.fail(e.getMessage(), Mono.just(e.getMessage()));
+    }
+
+    /**
+     * 自定义验证异常
+     */
+    @ExceptionHandler(BindException.class)
+    public Mono<RW<Object>> validatedBindException(ServerWebExchange exchange, BindException e) {
+        log.warn("接口异常 uri={} e={}", exchange.getRequest().getPath().value(), LogExceptionStackTrace.erroStackTrace(e));
+        String message = e.getAllErrors().getFirst().getDefaultMessage();
+        assert message != null;
+        return RW.fail(message, Mono.just(message));
+    }
+
+    /**
+     * 自定义验证异常
+     */
+    @ExceptionHandler(MethodArgumentNotValidException.class)
+    public Mono<RW<Object>> validExceptionHandler(ServerWebExchange exchange, MethodArgumentNotValidException e) {
+        log.warn("接口异常 uri={} e={}", exchange.getRequest().getPath().value(), LogExceptionStackTrace.erroStackTrace(e));
+        String message = Objects.requireNonNull(e.getBindingResult().getFieldError()).getDefaultMessage();
+        assert message != null;
+        return RW.fail(message, Mono.just(message));
     }
 }

+ 3 - 3
launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/planNew/PlanNewCommonController.java

@@ -157,7 +157,7 @@ public class PlanNewCommonController {
                 .select(Query.query(Criteria.where("poster_template_id").is(planReq.getPosterTemplateId()))
                         .sort(Sort.by(Sort.Order.asc("created_at"))), Poster.class)
                 .switchIfEmpty(Mono.error(new BaseException("未查询到海报模版")))
-                .onErrorResume(throwable -> Mono.error(new Exception("未查询到海报模版")))
+                .onErrorResume(throwable -> Mono.error(new BaseException("未查询到海报模版")))
                 .collectList().flatMap(f -> {
                     Poster poster = f.getFirst();
                     String posterTemplate = poster.posterTemplate();
@@ -227,7 +227,7 @@ public class PlanNewCommonController {
             // 交友计划
             Mono<PlanNewCommon> planNewCommonMono = template.selectOne(Query.query(Criteria.where("id").is(planId)), PlanNewCommon.class)
                     .switchIfEmpty(Mono.error(new BaseException("计划id异常")))
-                    .onErrorResume(throwable -> Mono.error(new Exception("计划id异常")));
+                    .onErrorResume(throwable -> Mono.error(new BaseException("计划id异常")));
             return RStatus.success(planNewCommonMono);
 
     }
@@ -319,7 +319,7 @@ public class PlanNewCommonController {
             Query plan = Query.query(Criteria.where("id").is(planId));
             Mono<Long> planNewCommon = template.delete(plan, PlanNewCommon.class)
                     .switchIfEmpty(Mono.error(new BaseException("计划id异常")))
-                    .onErrorResume(throwable -> Mono.error(new Exception("删除计划 " + planId + "---" + type + "error:" + throwable.getMessage())));
+                    .onErrorResume(throwable -> Mono.error(new BaseException("删除计划 " + planId + "---" + type + "error:" + throwable.getMessage())));
             Query planNewId = Query.query(Criteria.where("plan_new_id").is(planId));
             Mono<Long> poster = template.count(planNewId, PlanNewBackgroupPoster.class).filter(f -> f > 0)
                     .flatMap(f -> template.delete(planNewId, PlanNewBackgroupPoster.class))

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

@@ -7,10 +7,12 @@ import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONArray;
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
-import com.alibaba.fastjson.JSON;
 import com.plumelog.core.util.LogExceptionStackTrace;
 import com.webflux.launchadmin.global.BaseException;
-import com.webflux.launchadmin.mysql.controller.planNew.req.*;
+import com.webflux.launchadmin.mysql.controller.planNew.req.KefuRequest;
+import com.webflux.launchadmin.mysql.controller.planNew.req.OutDomainRequest;
+import com.webflux.launchadmin.mysql.controller.planNew.req.PlanNewCommonMaterialReq;
+import com.webflux.launchadmin.mysql.controller.planNew.req.PlanNewCommonShareReq;
 import com.webflux.launchadmin.mysql.controller.planNew.res.*;
 import com.webflux.launchadmin.mysql.controller.takeawayController.res.TakeawayH5Data;
 import com.webflux.launchadmin.mysql.entity.groupUsers.GroupUsers;
@@ -24,14 +26,11 @@ import com.webflux.launchadmin.mysql.service.takeaway.TakeawayServicesInterface;
 import com.webflux.launchcommon.returnObj.RStatus;
 import com.webflux.launchcommon.utils.StringUtils;
 import jakarta.annotation.Resource;
-import jakarta.json.Json;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.exception.ExceptionUtils;
 import org.springframework.data.domain.Sort;
 import org.springframework.data.r2dbc.core.R2dbcEntityTemplate;
 import org.springframework.data.redis.core.ReactiveRedisTemplate;
 import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.data.relational.core.query.Criteria;
 import org.springframework.data.relational.core.query.Query;
 import org.springframework.scheduling.annotation.Scheduled;
@@ -86,8 +85,8 @@ public class PlanNewCommonOutController {
     @GetMapping("getPlanNewCommonH5")
     public Mono<RStatus<byte[]>> getPlanNewCommonH5(@RequestParam("code") String code) {
         Mono<PlanNewCommon> planNewCommonMono = template.selectOne(Query.query(Criteria.where("code").is(code)), PlanNewCommon.class)
-                .switchIfEmpty(Mono.error(new BaseException("计划code异常" + ExceptionUtils.getStackTrace(new Exception()))))
-                .onErrorResume(throwable -> Mono.error(new Exception(LogExceptionStackTrace.erroStackTrace(throwable).toString())));
+                .switchIfEmpty(Mono.error(new BaseException("计划code异常")))
+                .onErrorResume(throwable -> Mono.error(new BaseException("计划code异常")));
         Mono<PlanNewCommonRes> resMono = planNewCommonMono.flatMap(f -> {
             // 群成员
             Mono<List<GroupUserRes>> groupUserResMono = Mono.just(new ArrayList<>());
@@ -95,16 +94,16 @@ public class PlanNewCommonOutController {
             Mono<List<Image>> imageMono = template.select(Query.query(Criteria.where("type").is(1)
                             .and("group_type_id").is(f.groupId())
                             .and("deleted_at").isNull()), Image.class)
-                    .onErrorResume(throwable -> Mono.error(new Exception(LogExceptionStackTrace.erroStackTrace(throwable).toString()))).collectList();
+                    .onErrorResume(throwable -> Mono.error(new BaseException("获取群封面异常"))).collectList();
             // 群名称
             Mono<List<Material>> textMono = template.select(Query.query(Criteria.where("type").is(4)
                             .and("deleted_at").isNull()
                             .and("group_type_id").is(f.groupId())), Material.class)
-                    .onErrorResume(throwable -> Mono.error(new Exception(LogExceptionStackTrace.erroStackTrace(throwable).toString()))).collectList();
+                    .onErrorResume(throwable -> Mono.error(new BaseException("获取群名称异常"))).collectList();
             if (3 == f.type()) {
                 // 交友裂变, 需要群成员
                 Mono<List<GroupUsers>> groupUsersMono = template.select(Query.query(Criteria.where("group_users_type").is(f.groupId())).limit(14), GroupUsers.class)
-                        .onErrorResume(throwable -> Mono.error(new Exception(LogExceptionStackTrace.erroStackTrace(throwable).toString()))).collectList();
+                        .onErrorResume(throwable -> Mono.error(new BaseException("获取群成员异常"))).collectList();
                 groupUserResMono = groupUsersMono.flatMap(groupUsers -> {
                     List<GroupUserRes> groupUserResList = groupUsers.stream().map(groupUsers1 -> {
                         GroupUserRes groupUserRes = new GroupUserRes();
@@ -176,7 +175,7 @@ public class PlanNewCommonOutController {
     public Mono<RStatus<byte[]>> kefuList(@RequestBody KefuRequest request) {
         Mono<PlanNewCommon> code = template.selectOne(Query.query(Criteria.where("code").is(request.getCode())), PlanNewCommon.class)
                 .switchIfEmpty(Mono.error(new BaseException("code查询返回结构为空")))
-                .onErrorResume(throwable -> Mono.error(new Exception(LogExceptionStackTrace.erroStackTrace(throwable).toString())));
+                .onErrorResume(throwable -> Mono.error(new BaseException("code查询返回结构为空")));
         Mono<DataListsKefu> dataListsKefuMono = code.flatMap(planNew -> {
             Mono<List<Image>> image = template.select(Query.query(Criteria.where("type").is(5)
                             .and("deleted_at").isNull()
@@ -184,13 +183,13 @@ public class PlanNewCommonOutController {
                     .collectList()
                     .switchIfEmpty(Mono.error(new BaseException(StrUtil.format("通过计划groupId:{}查询Image返回结构为空", planNew.groupId()))))
                     .onErrorResume(throwable ->
-                            Mono.error(new Exception(StrUtil.format("通过计划groupId:{}查询Image返回结果error:{}", planNew.groupId(), LogExceptionStackTrace.erroStackTrace(throwable).toString()))));
+                            Mono.error(new BaseException(StrUtil.format("通过计划groupId:{}查询Image返回结果error:{}", planNew.groupId(), throwable.getMessage()))));
             Mono<List<Material>> text = template.select(Query.query(Criteria.where("type").is(11)
                             .and("group_type_id").is(planNew.groupId())
                             .and("deleted_at").isNull()), Material.class)
                     .switchIfEmpty(Mono.error(new BaseException(StrUtil.format("通过计划groupId:{}查询Material返回结构为空", planNew.groupId()))))
                     .onErrorResume(throwable ->
-                            Mono.error(new Exception(StrUtil.format("通过计划groupId:{}查询Material返回结果error:{}", planNew.groupId(), LogExceptionStackTrace.erroStackTrace(throwable).toString()))))
+                            Mono.error(new BaseException(StrUtil.format("通过计划groupId:{}查询Material返回结果error:{}", planNew.groupId(), throwable.getMessage()))))
                     .collectList();
             Mono<List<H5ImageAndText>> arrayListMono = Mono.zip(Mono.just(planNew), image, text).flatMap(f -> {
                 // H5ImageAndText
@@ -199,7 +198,7 @@ public class PlanNewCommonOutController {
                 List<Image> t3 = f.getT2();
                 List<Material> t4 = f.getT3();
                 if (t3.size() < integer || t4.size() < integer) {
-                    throw new BaseException("图片或文字素材小于计划设置数");
+                    return Mono.error(new BaseException("图片或文字素材小于计划设置数"));
                 }
                 ArrayList<Long> listImg = new ArrayList<>();
                 ArrayList<Long> listTxt = new ArrayList<>();
@@ -285,7 +284,7 @@ public class PlanNewCommonOutController {
         Mono<PlanNew> code1 = template
                 .selectOne(Query.query(Criteria.where("code").is(request.getCode())), PlanNew.class)
                 .switchIfEmpty(Mono.error(new BaseException("计划code异常 返回结果为空")))
-                .onErrorResume(throwable -> Mono.error(new Exception(LogExceptionStackTrace.erroStackTrace(throwable).toString())));
+                .onErrorResume(throwable -> Mono.error(new BaseException("计划code异常")));
         Mono<DomainSelectRes> domainSelectResMono1 = code1.flatMap(f -> {
             Mono<String> stringMono;
             if (f.transferPageBl() == 1 && Objects.nonNull(f.transferPageDomain())) {
@@ -295,7 +294,7 @@ public class PlanNewCommonOutController {
                                 .and("type").is(5)
                                 .and("deleted_at").isNull()), DomainSelect.class)
                         .switchIfEmpty(Mono.error(new BaseException("transferPageDomain 域名查詢為空 group_type_id:::" + f.transferPageDomain())))
-                        .onErrorResume(throwable -> Mono.error(new Exception(LogExceptionStackTrace.erroStackTrace(throwable).toString()))).collectList().flatMap(fff -> {
+                        .onErrorResume(throwable -> Mono.error(new BaseException("transferPageDomain 域名查詢為空 group_type_id:::" + f.transferPageDomain()))).collectList().flatMap(fff -> {
                             if (!fff.isEmpty()) {
                                 DomainSelect domainSelect = fff.get(RandomUtil.randomInt(0, fff.size()));
                                 String string = RandomUtil.randomString("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 6);
@@ -303,7 +302,7 @@ public class PlanNewCommonOutController {
                                 return Mono.just(string + "." + domain1);
 
                             } else {
-                                throw new BaseException("transferPageDomain 中轉域名查詢為空 group_type_id:::" + f.transferPageDomain());
+                                return Mono.error(new BaseException("transferPageDomain 中轉域名查詢為空 group_type_id:::" + f.transferPageDomain()));
                             }
                         });
             } else {
@@ -317,14 +316,14 @@ public class PlanNewCommonOutController {
                                 .and("type").is(4)
                                 .and("deleted_at").isNull()), DomainSelect.class)
                         .switchIfEmpty(Mono.error(new BaseException("backgroupDomain 域名查询为空 group_type_id" + f.backgroupDomain())))
-                        .onErrorResume(throwable -> Mono.error(new Exception(LogExceptionStackTrace.erroStackTrace(throwable).toString()))).collectList().flatMap(fff -> {
+                        .onErrorResume(throwable -> Mono.error(new BaseException("backgroupDomain 域名查询为空 group_type_id" + f.backgroupDomain()))).collectList().flatMap(fff -> {
                             if (!fff.isEmpty()) {
                                 DomainSelect domainSelect = fff.get(RandomUtil.randomInt(0, fff.size()));
                                 String string = RandomUtil.randomString("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 6);
                                 String domain1 = domainSelect.domain();
                                 return Mono.just(string + "." + domain1);
                             } else {
-                                throw new BaseException("backgroupDomain 背景域名查詢為空 group_type_id" + f.backgroupDomain());
+                                return Mono.error(new BaseException("backgroupDomain 背景域名查詢為空 group_type_id" + f.backgroupDomain()));
                             }
                         });
             } else {
@@ -336,7 +335,7 @@ public class PlanNewCommonOutController {
                             .and("type").is(request.getType())
                             .and("deleted_at").isNull()), DomainSelect.class)
                     .switchIfEmpty(Mono.error(new BaseException("查询domain 返回结果为空")))
-                    .onErrorResume(throwable -> Mono.error(new Exception(LogExceptionStackTrace.erroStackTrace(throwable).toString()))).collectList().flatMap(fm -> {
+                    .onErrorResume(throwable -> Mono.error(new BaseException("查询domain 返回结果为空"))).collectList().flatMap(fm -> {
                         //  DomainSelectRes domainSelectRes = new DomainSelectRes();
                         int i = RandomUtil.randomInt(0, fm.size());
                         String domain = fm.get(i).domain();
@@ -363,14 +362,14 @@ public class PlanNewCommonOutController {
     private Mono<RStatus<DomainSelectRes>> getListeningPlan(OutDomainRequest request) {
         Mono<ListeningPlanNew> code1 = template.selectOne(Query.query(Criteria.where("code").is(request.getCode())), ListeningPlanNew.class)
                 .switchIfEmpty(Mono.error(new BaseException("计划code异常 返回结果为空")))
-                .onErrorResume(throwable -> Mono.error(new Exception(LogExceptionStackTrace.erroStackTrace(throwable).toString())));
+                .onErrorResume(throwable -> Mono.error(new BaseException("计划code异常 返回结果为空")));
         Mono<DomainSelectRes> domainSelectResMono1 = code1.flatMap(f -> template.select(Query.query(Criteria
                         .where("group_type_id").is(f.groupId())
                         .and("status").is(1)
                         .and("type").is(request.getType())
                         .and("deleted_at").isNull()), DomainSelect.class)
                 .switchIfEmpty(Mono.error(new BaseException("查询domain 返回结果为空")))
-                .onErrorResume(throwable -> Mono.error(new Exception(LogExceptionStackTrace.erroStackTrace(throwable).toString()))).collectList()
+                .onErrorResume(throwable -> Mono.error(new BaseException("查询domain 返回结果为空"))).collectList()
                 .flatMap(fm -> {
                     DomainSelectRes domainSelectRes = new DomainSelectRes();
                     int i = RandomUtil.randomInt(0, fm.size());
@@ -398,7 +397,7 @@ public class PlanNewCommonOutController {
                             .and("deleted_at").isNull()
                             .and("type").is(request.getType())), DomainSelect.class)
                     .switchIfEmpty(Mono.error(new BaseException("查询domain 返回结果为空")))
-                    .onErrorResume(throwable -> Mono.error(new Exception(LogExceptionStackTrace.erroStackTrace(throwable).toString())))
+                    .onErrorResume(throwable -> Mono.error(new BaseException("查询domain 返回结果为空")))
                     .collectList().flatMap(fm -> {
                         int i = RandomUtil.randomInt(0, fm.size());
                         String domain = fm.get(i).domain();
@@ -414,14 +413,14 @@ public class PlanNewCommonOutController {
                     .and("type").is(5)
                     .and("deleted_at").isNull()), DomainSelect.class)
                     .switchIfEmpty(Mono.error(new BaseException("transferPageDomain 域名查詢為空 group_type_id:::" + request.getTransferPageDomain())))
-                    .onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()))).collectList().flatMap(fff -> {
+                    .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage()))).collectList().flatMap(fff -> {
                         if (!fff.isEmpty()) {
                             DomainSelect domainSelect = fff.get(RandomUtil.randomInt(0, fff.size()));
                             String string = RandomUtil.randomString("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 6);
                             String domain1 = domainSelect.domain();
                             return Mono.just(string + "." + domain1);
                         } else {
-                            throw new BaseException("transferPageDomain 中轉域名查詢為空 group_type_id:::" +  request.getTransferPageDomain());
+                            return Mono.error(new BaseException("transferPageDomain 中轉域名查詢為空 group_type_id:::" +  request.getTransferPageDomain()));
                         }
                     });
         } else {
@@ -435,14 +434,14 @@ public class PlanNewCommonOutController {
                     .and("type").is(4)
                     .and("deleted_at").isNull()), DomainSelect.class)
                     .switchIfEmpty(Mono.error(new BaseException("backgroupDomain 域名查询为空 group_type_id" + request.getBackgroupDomain())))
-                    .onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()))).collectList().flatMap(fff -> {
+                    .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage()))).collectList().flatMap(fff -> {
                         if (!fff.isEmpty()) {
                             DomainSelect domainSelect = fff.get(RandomUtil.randomInt(0, fff.size()));
                             String string = RandomUtil.randomString("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 6);
                             String domain1 = domainSelect.domain();
                             return Mono.just(string + "." + domain1);
                         } else {
-                            throw new BaseException("backgroupDomain 背景域名查詢為空 group_type_id" + request.getBackgroupDomain());
+                            return Mono.error(new BaseException("backgroupDomain 背景域名查詢為空 group_type_id" + request.getBackgroupDomain()));
                         }
                     });
         } else {
@@ -470,7 +469,7 @@ public class PlanNewCommonOutController {
                     .and("deleted_at").isNull()
                     .and("type").is(request.getType())), DomainSelect.class)
                     .switchIfEmpty(Mono.error(new BaseException("查询domain 返回结果为空")))
-                    .onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage())))
+                    .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage())))
                     .collectList().flatMap(fm -> {
                         int i = RandomUtil.randomInt(0, fm.size());
                         String domain = fm.get(i).domain();
@@ -498,7 +497,7 @@ public class PlanNewCommonOutController {
     public Mono<RStatus<PlanNewCommonMaterialRes>> getCommonMaterial(@RequestBody PlanNewCommonMaterialReq request) {
         Mono<PlanNewCommon> planNewCommonMono = template.selectOne(Query.query(Criteria.where("code").is(request.getCode())), PlanNewCommon.class)
                 .switchIfEmpty(Mono.error(new BaseException("计划code异常 返回结果为空")))
-                .onErrorResume(throwable -> Mono.error(new Exception(LogExceptionStackTrace.erroStackTrace(throwable).toString())));
+                .onErrorResume(throwable -> Mono.error(new BaseException("计划code异常 返回结果为空")));
         Mono<PlanNewCommonMaterialRes> materialResMono = planNewCommonMono.flatMap(plan -> {
             // 群音频
             Mono<Audio> groupAudio = this.getAudio(request.getAudioId());
@@ -512,7 +511,7 @@ public class PlanNewCommonOutController {
                 returnLoop = template.selectOne(Query.query(Criteria.where("id").is(request.getReturnLoopId())
                                 .and("deleted_at").isNull()), ReturnLoop.class)
                         .switchIfEmpty(Mono.just(getReturnLoop()))
-                        .onErrorResume(throwable -> Mono.error(new Exception(LogExceptionStackTrace.erroStackTrace(throwable).toString())));
+                        .onErrorResume(throwable -> Mono.error(new BaseException("查询返回广告异常:::" + throwable.getMessage())));
             }
             // 分享背景组
             Mono<List<BackgroupImageItem>> backgroupImageItemMono;
@@ -522,17 +521,17 @@ public class PlanNewCommonOutController {
                 backgroupImageItemMono = template.select(Query.query(Criteria
                                 .where("group_id").is(request.getBackgroundGroupId())), BackgroupImageItem.class).collectList()
                         .switchIfEmpty(Mono.just(List.of()))
-                        .onErrorResume(throwable -> Mono.error(new Exception(LogExceptionStackTrace.erroStackTrace(throwable).toString())));
+                        .onErrorResume(throwable -> Mono.error(new BaseException("查询分享背景组异常:::" + throwable.getMessage())));
             }
-            Mono<TakeawayH5Data> takeaway ;
+            Mono<TakeawayH5Data> takeaway;
             if (Objects.nonNull(request.getTakeawayId()) && request.getTakeawayId() > 0) {
                 takeaway = takeawayServicesInterface.getTakeaway(request.getTakeawayId())
                         .switchIfEmpty(Mono.just(new TakeawayH5Data()))
-                        .onErrorResume(e->Mono.error(new BaseException("查询外卖模版数据异常:::"+LogExceptionStackTrace.erroStackTrace(e).toString())));
-            }else {
-                takeaway=Mono.just(new TakeawayH5Data());
+                        .onErrorResume(e -> Mono.error(new BaseException("查询外卖模版数据异常:::" + e.getMessage())));
+            } else {
+                takeaway = Mono.just(new TakeawayH5Data());
             }
-            return Mono.zip(groupAudio, retAudio, returnLoop, backgroupImageItemMono,takeaway).flatMap(f -> {
+            return Mono.zip(groupAudio, retAudio, returnLoop, backgroupImageItemMono, takeaway).flatMap(f -> {
                 PlanNewCommonMaterialRes materialRes = new PlanNewCommonMaterialRes();
                 materialRes.setGroupAudio(f.getT1());
                 materialRes.setRetAudio(f.getT2());
@@ -592,6 +591,9 @@ public class PlanNewCommonOutController {
      */
     @PostMapping("planCommonShare")
     public Mono<RStatus<PlanNewCommonShareRes>> planCommonShare(@RequestBody PlanNewCommonShareReq request) {
+        if (request == null) {
+            return Mono.error(new BaseException("请求参数为空"));
+        }
         if (MAP.containsKey(request.getUnique())) {
             Integer integer = MAP.get(request.getUnique());
             MAP.put(request.getUnique(), integer + 1);
@@ -602,7 +604,7 @@ public class PlanNewCommonOutController {
         }
         Mono<PlanNewCommon> planNewCommonMono = template.selectOne(Query.query(Criteria.where("code").is(request.getCode())), PlanNewCommon.class)
                 .switchIfEmpty(Mono.error(new BaseException(" code错误")))
-                .onErrorResume(throwable -> Mono.error(new Exception(LogExceptionStackTrace.erroStackTrace(throwable).toString())));
+                .onErrorResume(throwable -> Mono.error(new BaseException("code错误::" + throwable.getMessage())));
         Mono<PlanNewCommonShareRes> resMono = planNewCommonMono.flatMap(plan -> {
             Mono<StringBuilder> stringBuilderMono;
             boolean isQs = Objects.nonNull(request.getWx_user_id()) && !request.getWx_user_id().isEmpty();
@@ -642,7 +644,7 @@ public class PlanNewCommonOutController {
                             int v = userVisits % qs.size();
                             res.setQsSetting(qs.get(v));
                             if (f.getT6().toString().isEmpty()) {
-                                throw new BaseException("计划链接 查询匹配域名为空");
+                                return Mono.error(new BaseException("计划链接 查询匹配域名为空"));
                             }
                             res.setLink(f.getT6().toString());
                         } else {
@@ -664,7 +666,7 @@ public class PlanNewCommonOutController {
                             int v = userVisits % fx.size();
                             res.setFxSetting(fx.get(v));
                             if (f.getT6().toString().isEmpty()) {
-                                throw new BaseException("计划链接 查询匹配域名为空");
+                                return Mono.error(new BaseException("计划链接 查询匹配域名为空"));
                             }
                             res.setLink(f.getT6().toString());
                         } else {
@@ -718,7 +720,7 @@ public class PlanNewCommonOutController {
                 try {
                     jsonObject1 = JSONUtil.parseObj(ret);
                 } catch (Exception e) {
-                    throw new BaseException(e.getMessage() + "---" + JSONUtil.parseObj(goRequest) + " error:" + LogExceptionStackTrace.erroStackTrace(e).toString());
+                    return Mono.error(new Exception(e.getMessage() + "---" + JSONUtil.parseObj(goRequest) + " error:" + LogExceptionStackTrace.erroStackTrace(e).toString()));
                 }
                 if (jsonObject1.containsKey("code") && jsonObject1.get("code", Integer.class) == 0 && jsonObject1.containsKey("data")) {
                     JSONObject data = jsonObject1.get("data", JSONObject.class);
@@ -746,7 +748,8 @@ public class PlanNewCommonOutController {
         try {
             jsonObject = JSONUtil.parseObj(posterTemplate);
         } catch (Exception e) {
-            throw new BaseException(e.getMessage() + "---" + posterTemplate + " error:" + LogExceptionStackTrace.erroStackTrace(e).toString());
+            log.error(e.getMessage() + "---" + posterTemplate + " error:" + LogExceptionStackTrace.erroStackTrace(e).toString());
+            return null;
         }
         // JSONObject jsonObject = JSONUtil.parseObj(posterTemplate);
         GoRequest goRequest = new GoRequest();
@@ -792,7 +795,7 @@ public class PlanNewCommonOutController {
             try {
                 jsonObject = JSONUtil.parseObj(posterTemplate);
             } catch (Exception e) {
-                throw new BaseException(e.getMessage() + "---" + posterTemplate + " error:" + LogExceptionStackTrace.erroStackTrace(e).toString());
+                return Mono.error(new Exception(e.getMessage() + "---" + posterTemplate + " error:" + LogExceptionStackTrace.erroStackTrace(e).toString()));
             }
             GoRequest goRequest = new GoRequest();
             BeanUtil.copyProperties(jsonObject, goRequest);

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

@@ -141,7 +141,7 @@ public class PlanNewController {
     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())));
+                .onErrorResume(throwable -> Mono.error(new BaseException(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) -> {
@@ -788,7 +788,7 @@ public class PlanNewController {
             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())));
+                    .onErrorResume(throwable -> Mono.error(new BaseException("删除计划 " + 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));
@@ -799,7 +799,7 @@ public class PlanNewController {
                     .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())));
+                    .onErrorResume(throwable -> Mono.error(new BaseException("删除计划 " + 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));
@@ -869,7 +869,7 @@ public class PlanNewController {
                                 return Mono.just(planNewAllRs);
                             }
                     ).switchIfEmpty(Mono.error(new BaseException("计划id异常"))) // Mono.error(new BaseException("查询海报模版 id:"+f.posterTemplateId()+"=>空"))
-                    .onErrorResume(throwable -> Mono.error(new Exception("计划id异常")));
+                    .onErrorResume(throwable -> Mono.error(new BaseException("计划id异常")));
             return RStatus.success(planNewAllRsMono);
         } else if (2 == type) {
             Mono<PlanNewAllRs> planNewAllRsMono = template
@@ -921,7 +921,7 @@ public class PlanNewController {
                                 return Mono.just(planNewAllRs);
                             }
                     ).switchIfEmpty(Mono.error(new BaseException("计划id异常"))) // Mono.error(new BaseException("查询海报模版 id:"+f.posterTemplateId()+"=>空"))
-                    .onErrorResume(throwable -> Mono.error(new Exception("计划id异常")));
+                    .onErrorResume(throwable -> Mono.error(new BaseException("计划id异常")));
             return RStatus.success(planNewAllRsMono);
         }
         throw new BaseException("type类型错误");
@@ -1048,11 +1048,11 @@ public class PlanNewController {
             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())));
+                    .onErrorResume(throwable -> Mono.error(new BaseException("查询海报模版 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())));
+                    .onErrorResume(throwable -> Mono.error(new BaseException("查询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();

+ 23 - 19
launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/planNew/PlanNewOutController.java

@@ -104,7 +104,7 @@ public class PlanNewOutController {
             Mono<PlanNew> code1 = template
                     .selectOne(Query.query(Criteria.where("code").is(code)), PlanNew.class)
                     .switchIfEmpty(Mono.error(new BaseException("计划code异常 返回结果为空"))) //Mono.error(new BaseException("查询海报模版 id:"+f.posterTemplateId()+"=>空"))
-                    .onErrorResume(throwable -> Mono.error(new Exception(  throwable.getMessage())));
+                    .onErrorResume(throwable -> Mono.error(new BaseException(  throwable.getMessage())));
             Mono<DomainSelectRes> domainSelectResMono1 = code1.flatMap(f -> {
                 Mono<String> stringMono;
                 if (f.transferPageBl() == 1 && Objects.nonNull(f.transferPageDomain())) {
@@ -114,7 +114,7 @@ public class PlanNewOutController {
                             .and("type").is(5)
                             .and("deleted_at").isNull()), DomainSelect.class)
                             .switchIfEmpty(Mono.error(new BaseException("transferPageDomain 域名查詢為空 group_type_id:::" + f.transferPageDomain())))
-                            .onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()))).collectList().flatMap(fff -> {
+                            .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage()))).collectList().flatMap(fff -> {
                                 if (!fff.isEmpty()) {
                                     DomainSelect domainSelect = fff.get(RandomUtil.randomInt(0, fff.size()));
                                     String string = RandomUtil.randomString("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 6);
@@ -136,7 +136,7 @@ public class PlanNewOutController {
                             .and("type").is(4)
                             .and("deleted_at").isNull()), DomainSelect.class)
                             .switchIfEmpty(Mono.error(new BaseException("backgroupDomain 域名查詢為空 group_type_id" + f.backgroupDomain())))
-                            .onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()))).collectList().flatMap(fff -> {
+                            .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage()))).collectList().flatMap(fff -> {
                                 if (!fff.isEmpty()) {
                                     DomainSelect domainSelect = fff.get(RandomUtil.randomInt(0, fff.size()));
                                     String string = RandomUtil.randomString("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", 6);
@@ -152,7 +152,7 @@ public class PlanNewOutController {
                 Mono<String> stringMono2 = template.select(Query.query(Criteria.where("group_type_id").is(f.landingPageDomain())
                         .and("status").is(1).and("type").is(type).and("deleted_at").isNull()), DomainSelect.class)
                         .switchIfEmpty(Mono.error(new BaseException("查询domain 返回结果为空")))
-                        .onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()))).collectList().flatMap(fm -> {
+                        .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage()))).collectList().flatMap(fm -> {
                           //  DomainSelectRes domainSelectRes = new DomainSelectRes();
                             int i = RandomUtil.randomInt(0, fm.size());
                             String domain = fm.get(i).domain();
@@ -214,7 +214,7 @@ public class PlanNewOutController {
     public Mono<RStatus<DataListsKefu>> kefuList(@RequestBody KefuRequest request){
         Mono<PlanNew> code = template.selectOne(Query.query(Criteria.where("code").is(request.getCode())), PlanNew.class)
                 .switchIfEmpty(Mono.error(new BaseException("code查询返回结构为空"))) //Mono.error(new BaseException("查询海报模版 id:"+f.posterTemplateId()+"=>空"))
-                .onErrorResume(throwable -> Mono.error(new Exception("通过code查询计划异常::" + throwable.getMessage())));
+                .onErrorResume(throwable -> Mono.error(new BaseException("通过code查询计划异常::" + throwable.getMessage())));
         Mono<DataListsKefu> dataListsKefuMono = code.flatMap(planNew -> {
             Mono<List<Image>> image = template.select(Query.query(Criteria.where("type").is(5)
                     .and("deleted_at").isNull()
@@ -222,13 +222,13 @@ public class PlanNewOutController {
                     .collectList()
                     .switchIfEmpty(Mono.error(new BaseException(StrUtil.format("通过计划groupId:{}查询Image返回结构为空", planNew.groupId()))))
                     .onErrorResume(throwable ->
-                            Mono.error(new Exception(StrUtil.format("通过计划groupId:{}查询Image返回结果error:{}", planNew.groupId(), throwable.getMessage()))));
+                            Mono.error(new BaseException(StrUtil.format("通过计划groupId:{}查询Image返回结果error:{}", planNew.groupId(), throwable.getMessage()))));
             Mono<List<Material>> text = template.select(Query.query(Criteria.where("type").is(11)
                             .and("group_type_id").is(planNew.groupId())
                             .and("deleted_at").isNull()), Material.class)
                     .switchIfEmpty(Mono.error(new BaseException(StrUtil.format("通过计划groupId:{}查询Material返回结构为空", planNew.groupId()))))
                     .onErrorResume(throwable ->
-                            Mono.error(new Exception(StrUtil.format("通过计划groupId:{}查询Material返回结果error:{}", planNew.groupId(), throwable.getMessage()))))
+                            Mono.error(new BaseException(StrUtil.format("通过计划groupId:{}查询Material返回结果error:{}", planNew.groupId(), throwable.getMessage()))))
                     .collectList();
             Mono<List<H5ImageAndText>> arrayListMono = Mono.zip(Mono.just(planNew), image, text).flatMap(f -> {
                 //H5ImageAndText
@@ -323,7 +323,7 @@ public class PlanNewOutController {
 
         Mono<PlanNew> code0 = template.selectOne(Query.query(Criteria.where("code").is(request.getCode())), PlanNew.class)
                 .switchIfEmpty(Mono.error(new BaseException(" code错误")))
-                .onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage())));
+                .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage())));
         Mono<DataLists> dataListsMono1 = code0.flatMap(planNew -> {
             Mono<PlanNew> code = Mono.just(planNew);
             Long group_type_id ; //.and("group_type_id").is(group_type_id)
@@ -333,7 +333,7 @@ public class PlanNewOutController {
                 group_type_id=planNew.groupIdQs();
             }
             Mono<List<Domain>> domain = code.flatMap(plan -> template.select(Query.query(Criteria.where("group_type").is(1)
-                    .and("deleted_at").isNull()), Domain.class).onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()+"6"))).collectList());
+                    .and("deleted_at").isNull()), Domain.class).onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage()+"6"))).collectList());
             // //类型 1素材分类2清水分类
             Criteria criteria = Criteria.where("type")
                     .is(1).and("deleted_at").isNull()
@@ -345,11 +345,11 @@ public class PlanNewOutController {
             }
             Query query = Query.query(criteria);
             Mono<List<Image>> image = template.select(query, Image.class)
-                    .onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()+"7")))
+                    .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage()+"7")))
                     .collectList();
             Mono<List<Material>> text = template.select(Query.query(Criteria.where("type")
                     .is(4).and("deleted_at").isNull().and("group_type_id").is(group_type_id)), Material.class)
-                    .onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()+"8")))
+                    .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage()+"8")))
                     .collectList();
             Mono<UserVisits> wx_user_id ;
             if (Objects.isNull(request.getWx_user_id()) || "".equals(request.getWx_user_id())) {
@@ -357,13 +357,13 @@ public class PlanNewOutController {
             }else{
                 Mono<UserVisits> insert = template.insert(new UserVisits(null, request.getWx_user_id(), 1));
                  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")))
+                         .onErrorResume(throwable -> Mono.error(new BaseException(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")));
+                                        .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage()+"10")));
                             }
                         }).switchIfEmpty(insert);
             }
@@ -426,18 +426,18 @@ public class PlanNewOutController {
                             Query.query(Criteria.where("id").is(plan.listAudioId()).and("deleted_at").isNull()),
                             Audio.class);
                 } }
-            ).onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()+"1")));
+            ).onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage()+"1")));
             Mono<Audio> retAudioId = code.flatMap(plan -> template.selectOne(Query.query(Criteria.where("id")
-                    .is(plan.retAudioId()).and("deleted_at").isNull()), Audio.class)).onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()+"2")));
+                    .is(plan.retAudioId()).and("deleted_at").isNull()), Audio.class)).onErrorResume(throwable -> Mono.error(new BaseException(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()).and("deleted_at").isNull()), ReturnLoop.class).onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()+"3")));
+                    return template.selectOne(Query.query(Criteria.where("id").is(plan.returnLoopId()).and("deleted_at").isNull()), ReturnLoop.class).onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage()+"3")));
                 }
             }).switchIfEmpty(Mono.just(getReturnLoop()));
-            Mono<List<Ad>> adtop = template.select(Query.query(Criteria.where("type").is(1).and("deleted_at").isNull()), 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).and("deleted_at").isNull()), Ad.class).onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()+"5"))).collectList();
+            Mono<List<Ad>> adtop = template.select(Query.query(Criteria.where("type").is(1).and("deleted_at").isNull()), Ad.class).onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage()+"4"))).collectList();////广告类型1顶部2底部3返回4安卓,ios的返回
+            Mono<List<Ad>> bottom = template.select(Query.query(Criteria.where("type").is(2).and("deleted_at").isNull()), Ad.class).onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage()+"5"))).collectList();
 
 
             Mono<DataLists> dataListsMono = Mono.zip(code, listAudio, retAudioId, returnLoop, arrayListMono, adtop, bottom, wx_user_id).flatMap(f -> {
@@ -552,7 +552,7 @@ public class PlanNewOutController {
         }
         Mono<PlanNew> code0 = template.selectOne(Query.query(Criteria.where("code").is(request.getCode())), PlanNew.class)
                 .switchIfEmpty(Mono.error(new BaseException(" code错误")))
-                .onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage())));
+                .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage())));
         Mono<DataLists0> dataLists0Mono =  code0.flatMap(ftmp->{
             //(如果wx_user_id值不为空则使用清水分类)
             Mono<StringBuilder> stringBuilderMono;
@@ -691,6 +691,7 @@ public class PlanNewOutController {
                     try {
                         jsonObject1 =  JSONUtil.parseObj(ret);
                     }catch (Exception e){
+                        log.error(e.getMessage() +"---"+JSONUtil.parseObj(goRequest2), e);
                         throw new BaseException(e.getMessage() +"---"+JSONUtil.parseObj(goRequest2));
                     }
                     if (jsonObject1.containsKey("code")
@@ -730,6 +731,7 @@ public class PlanNewOutController {
             try {
                 jsonObject = JSONUtil.parseObj(posterTemplate);
             }catch (Exception e){
+                log.error(e.getMessage() +"---"+posterTemplate, e);
                 throw new BaseException(e.getMessage() +"---"+posterTemplate);
             }
             //JSONObject jsonObject = JSONUtil.parseObj(posterTemplate);
@@ -831,6 +833,7 @@ public class PlanNewOutController {
             try {
                 encodedParam = URLEncoder.encode(first3.get().getV(), StandardCharsets.UTF_8.toString());
             }catch (Exception e){
+                log.error("URLEncoder Error"+e.getMessage(), e);
                 throw new BaseException("URLEncoder Error"+e.getMessage());
             }
         }
@@ -843,6 +846,7 @@ public class PlanNewOutController {
         try {
              jsonObject =  JSONUtil.parseObj(posterTemplate);
         }catch (Exception e){
+            log.error(e.getMessage() +"---"+posterTemplate, e);
             throw new BaseException(e.getMessage() +"---"+posterTemplate);
         }
         //JSONObject jsonObject = JSONUtil.parseObj(posterTemplate);

+ 8 - 5
launch-admin/src/main/java/com/webflux/launchadmin/mysql/service/listening/ListeningPlanServiceImpl.java

@@ -63,11 +63,11 @@ public class ListeningPlanServiceImpl implements ListeningPlanServiceInterface{
             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())));
+                    .onErrorResume(throwable -> Mono.error(new BaseException("查询海报模版 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())));
+                    .onErrorResume(throwable -> Mono.error(new BaseException("查询GroupType id:" + f.groupId() + "error:" + throwable.getMessage())));
             return Mono.zip(Mono.just(f), poster_template_id, id).flatMap(ff -> {
                 ListeningPlanNew t1 = ff.getT1();
                 ListeningPlanNewRes2 listeningPlanNewRes = new ListeningPlanNewRes2();
@@ -313,7 +313,7 @@ public class ListeningPlanServiceImpl implements ListeningPlanServiceInterface{
         Mono<ListeningPlanNew> listening_plan_new_id = template
                 .selectOne(Query.query(Criteria.where("listening_plan_new_id").is(listeningPlanNewId)), ListeningPlanNew.class)
                 .switchIfEmpty(Mono.error(new BaseException("计划错误")))
-                .onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage())))
+                .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage())))
                 .flatMap(f -> {
                     ListeningPlanNew listeningPlanNew = new ListeningPlanNew(IdUtil.fastSimpleUUID(),
                             f.name(),
@@ -382,7 +382,7 @@ public class ListeningPlanServiceImpl implements ListeningPlanServiceInterface{
         Mono<ListeningPlanNew> code1 = template.selectOne(Query.query(Criteria.where("code")
                 .is(outListeningRequest.getCode())), ListeningPlanNew.class)
                 .switchIfEmpty(Mono.error(new BaseException(" code错误")))
-                .onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage())));
+                .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage())));
         Mono<ListeningDataLists> idx_num1 = code1.flatMap(f -> {
             Mono<List<ListeningAudio>> idx_num = template.select(Query.query(Criteria.empty())
                     .sort(Sort.by(Sort.Order.asc("idx_num")))
@@ -433,7 +433,7 @@ public class ListeningPlanServiceImpl implements ListeningPlanServiceInterface{
         Mono<ListeningPlanNew> code1 = template.selectOne(Query.query(Criteria.where("code")
                 .is(request.getCode())), ListeningPlanNew.class)
                 .switchIfEmpty(Mono.error(new BaseException("hello!!! code错误")))
-                .onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage())));
+                .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage())));
         Mono<DataListsShare> dataListsShareMono = code1.flatMap(ftmp -> {
             Mono<ListeningPlanNew> code = Mono.just(ftmp);
             return Mono.zip(code, getPoster_template_id(code), getPoster(code), getPlanNewBackgroupPoster(code), getQrcode(code)).flatMap(f -> {
@@ -469,6 +469,7 @@ public class ListeningPlanServiceImpl implements ListeningPlanServiceInterface{
                 try {
                     jsonObject = JSONUtil.parseObj(posterTemplate);
                 } catch (Exception e) {
+                    log.error(e.getMessage() + "--解析海报模版--Errrrrrrrr" + posterTemplate, e);
                     throw new BaseException(e.getMessage() + "--解析海报模版--Errrrrrrrr" + posterTemplate);
                 }
                 GoRequest goRequest = new GoRequest();
@@ -743,6 +744,7 @@ public class ListeningPlanServiceImpl implements ListeningPlanServiceInterface{
                 try {
                     jsonObject1 =  JSONUtil.parseObj(ret);
                 }catch (Exception e){
+                    log.error(e.getMessage() +"--解析错误结果--"+JSONUtil.parseObj(goRequest), e);
                     throw new BaseException(e.getMessage() +"--解析错误结果--"+JSONUtil.parseObj(goRequest));
                 }
                 if (jsonObject1.containsKey("code") && jsonObject1.get("code", Integer.class) == 0 && jsonObject1.containsKey("data")) {
@@ -1099,6 +1101,7 @@ public class ListeningPlanServiceImpl implements ListeningPlanServiceInterface{
             body = HttpUtil.post(value + "/api/image/createImage",temStr,100000);
             return body;
         } catch (Exception e) {
+            log.error(e.getMessage() + "body:::" +body, e);
             throw new BaseException(e.getMessage() + "body:::" +body);
         }
 

+ 23 - 18
launch-admin/src/main/java/com/webflux/launchadmin/mysql/service/planNew/goGenerate/GoGenerateService.java

@@ -22,6 +22,7 @@ import com.webflux.launchadmin.mysql.service.planNew.structure.GoRequest;
 import com.webflux.launchadmin.mysql.service.planNew.structure.Item;
 import com.webflux.launchcommon.returnObj.RStatus;
 import jakarta.annotation.Resource;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.data.r2dbc.core.R2dbcEntityTemplate;
 import org.springframework.data.relational.core.query.Criteria;
@@ -42,7 +43,7 @@ import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
-
+@Slf4j
 @Service
 public class GoGenerateService {
 
@@ -56,21 +57,25 @@ public class GoGenerateService {
     // http://wx-share-8.duiweize.com 正式
     public String goGenerate(String temStr) {
         String body = "";
+        String url = value + "/api/image/createImage";
         try {
-            body = HttpUtil.post(value + "/api/image/createImage", temStr, 100000);
+            body = HttpUtil.post(url, temStr, 100000);
             return body;
         } catch (Exception e) {
+            log.error("error: body:::" + body + ":::request:::" + temStr + ", url: {}", url, e);
             throw new BaseException(e.getMessage() + "body:::" + body + ":::request:::" + temStr);
         }
     }
 
     public String goGenerateStr(String temStr) {
         String body = "";
+        String url = value + "/api/image/createImage";
         try {
-            body = HttpUtil.post(value + "/api/image/createImage", temStr, 100000);
+            body = HttpUtil.post(url, temStr, 100000);
             JSONUtil.parseObj(body);
             return body;
         } catch (Exception e) {
+            log.error("error: body:::" + body + ":::request:::" + temStr + ", url: {}", url, e);
             throw new BaseException(e.getMessage() + "body:::" + body);
         }
 
@@ -116,7 +121,7 @@ public class GoGenerateService {
                         getImageType1Poster(imageGroupId2),
                         getTextListsTitleSaveOrUpdatePoster(posterRequset)))
                 .switchIfEmpty(Mono.error(new BaseException(" 操作失败")))
-                .onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage())))
+                .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage())))
                 .flatMap(f -> template.insert(f));
         return RStatus.success(posterMono1);
     }
@@ -142,7 +147,7 @@ public class GoGenerateService {
                         .and("group_type_id").is(groupTypeId)
                         .and("size_type").is(1)
                         .and("deleted_at").isNull()), Image.class)
-                .onErrorResume(throwable -> Mono.error(new Exception("getImageType1Plan error:" + throwable.getMessage())))
+                .onErrorResume(throwable -> Mono.error(new BaseException("getImageType1Plan error:" + throwable.getMessage())))
                 .collectList();
     }
 
@@ -162,7 +167,7 @@ public class GoGenerateService {
         return template.select(Query.query(Criteria.where("type").is(14)
                         .and("group_type_id").in(groupTypeId)
                         .and("deleted_at").isNull()), Material.class)
-                .onErrorResume(throwable -> Mono.error(new Exception("getTextListsPlan error:" + throwable.getMessage())))
+                .onErrorResume(throwable -> Mono.error(new BaseException("getTextListsPlan error:" + throwable.getMessage())))
                 .collectList();
     }
 
@@ -191,7 +196,7 @@ public class GoGenerateService {
             return template.select(Query.query(Criteria.where("type").is(6)
                             .and("group_type_id").is(first.get().getGroupTypeIdSc())
                             .and("deleted_at").isNull()), Material.class)
-                    .onErrorResume(throwable -> Mono.error(new Exception("getImageType1Plan error:" + throwable.getMessage())))
+                    .onErrorResume(throwable -> Mono.error(new BaseException("getImageType1Plan error:" + throwable.getMessage())))
                     .collectList();
         } else {
             return Mono.just(List.of(getMaterialNull()));
@@ -221,7 +226,7 @@ public class GoGenerateService {
     private Mono<List<Image>> getBgImage(Long id) {
         return template.select(Query.query(Criteria.where("type").is(2).and("group_type_id").is(id)
                         .and("deleted_at").isNull()), Image.class)
-                .onErrorResume(throwable -> Mono.error(new Exception("getBgImage error:" + throwable.getMessage())))
+                .onErrorResume(throwable -> Mono.error(new BaseException("getBgImage error:" + throwable.getMessage())))
                 .collectList();
     }
 
@@ -772,7 +777,7 @@ public class GoGenerateService {
                 }
                 return Mono.just(url);
             });
-        }).onErrorResume(throwable -> Mono.error(new Exception("saveAndUpdatePlanGenerateImage1 error:" + throwable.getMessage())));
+        }).onErrorResume(throwable -> Mono.error(new BaseException("saveAndUpdatePlanGenerateImage1 error:" + throwable.getMessage())));
         return stringMono;
     }
 
@@ -792,7 +797,7 @@ public class GoGenerateService {
                         .and("type").is(1)
                         .and("deleted_at").isNull()), DomainSelect.class)
                 .collectList()
-                .onErrorResume(throwable -> Mono.error(new Exception("getImportDomain error:" + throwable.getMessage())))
+                .onErrorResume(throwable -> Mono.error(new BaseException("getImportDomain error:" + throwable.getMessage())))
                 .switchIfEmpty(Mono.just(List.of())).flatMap(b -> {
                     StringBuilder stringBuilder = new StringBuilder();
                     if (Objects.nonNull(b) && !b.isEmpty()) {
@@ -1232,7 +1237,7 @@ public class GoGenerateService {
                 if (1 == type) {
                     stringMono = template.selectOne(query, PlanNew.class)
                             .switchIfEmpty(Mono.error(new BaseException("自定义二维码:裂变计划查询::PlanId 返回空结果::" + planId)))
-                            .onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage())))
+                            .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage())))
                             .flatMap(f1 -> {
                                 String code = f1.code();
                                 return getDomainSetV(ftm, planId, type, f1.groupId(), code);
@@ -1240,7 +1245,7 @@ public class GoGenerateService {
                 } else if (2 == type) {
                     stringMono = template.selectOne(query, ListeningPlanNew.class)
                             .switchIfEmpty(Mono.error(new BaseException("自定义二维码:听书计划查询::PlanId  返回空结果::" + planId)))
-                            .onErrorResume(throwable -> Mono.error(new Exception("select ListeningPlanNew::" + throwable.getMessage())))
+                            .onErrorResume(throwable -> Mono.error(new BaseException("select ListeningPlanNew::" + throwable.getMessage())))
                             .flatMap(f1 -> {
                                 String code = f1.code();
                                 return getDomainSetV(ftm, planId, type, f1.groupId(), code);
@@ -1248,14 +1253,14 @@ public class GoGenerateService {
                 } else {
                     stringMono = template.selectOne(query, PlanNewCommon.class)
                             .switchIfEmpty(Mono.error(new BaseException("自定义二维码:交友计划查询::PlanId 返回空结果::" + planId)))
-                            .onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage())))
+                            .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage())))
                             .flatMap(f1 -> {
                                 String code = f1.code();
                                 return getDomainSetV(ftm, planId, type, f1.groupId(), code);
                             });
                 }
                 return stringMono;
-            }).onErrorResume(throwable -> Mono.error(new Exception("setCusqrcodeSetV error:" + throwable.getMessage()))).collectList();
+            }).onErrorResume(throwable -> Mono.error(new BaseException("setCusqrcodeSetV error:" + throwable.getMessage()))).collectList();
         }
         return Mono.just(List.of(new StringBuilder("无自定义二维码 随机事件")));
     }
@@ -1267,7 +1272,7 @@ public class GoGenerateService {
                         .and("deleted_at").isNull()), DomainSelect.class)
                 .collectList()
                 .switchIfEmpty(Mono.error(new BaseException("自定义二维码:裂变计划类型查询域名::不存在::(groupId::type(1裂變))(" + groupId + "::" + type + ")")))
-                .onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage()))).flatMap(f2 -> {
+                .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage()))).flatMap(f2 -> {
                     StringBuilder stringBuilder = new StringBuilder();
                     if (!f2.isEmpty()) {
                         DomainSelect domainSelect = f2.get(RandomUtil.randomInt(0, f2.size()));
@@ -1401,7 +1406,7 @@ public class GoGenerateService {
                     posterRes.setGenerateImagesUrl(url);
                     template.update(Query.query(empty), update, Poster.class)
                             .switchIfEmpty(Mono.error(new BaseException(" 操作失败")))
-                            .onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage())));
+                            .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage())));
                 }
             }
             return posterRes;
@@ -1483,7 +1488,7 @@ public class GoGenerateService {
                         getTextListsTitleSaveOrUpdatePoster(posterRequset)),
                 posterRequset)
                 .switchIfEmpty(Mono.error(new BaseException(" 操作失败")))
-                .onErrorResume(throwable -> Mono.error(new Exception(throwable.getMessage())))
+                .onErrorResume(throwable -> Mono.error(new BaseException(throwable.getMessage())))
                 .flatMap(f -> template.update(f));
         return RStatus.success(posterMono1);
     }
@@ -1504,7 +1509,7 @@ public class GoGenerateService {
         return template.select(Query.query(Criteria.where("type").is(10)
                         .and("group_type_id").in(id)
                         .and("deleted_at").isNull()), Image.class)
-                .onErrorResume(throwable -> Mono.error(new Exception("getImageSaveOrUpdatePlan error:" + throwable.getMessage())))
+                .onErrorResume(throwable -> Mono.error(new BaseException("getImageSaveOrUpdatePlan error:" + throwable.getMessage())))
                 .collectList();
     }
 

+ 1 - 1
launch-admin/src/main/resources/application.yml

@@ -6,7 +6,7 @@ spring:
     name: launch-webflux
   profiles:
     # 环境配置
-    active: dev
+    active: test
 
 
 xxl:

+ 15 - 16
launch-common/src/main/java/com/webflux/launchcommon/returnObj/RW.java

@@ -33,19 +33,19 @@ public class RW<T> implements Serializable {
     private T data;
 
     public static <T> Mono<RW<T>> fail(Mono<T> monoData) {
-        return createR(ERR, ERR_MSG,monoData);
+        return createR(ERR, ERR_MSG, monoData);
     }
 
-    public static <T> Mono<RW<T>> fail(String message,Mono<T> monoData) {
+    public static <T> Mono<RW<T>> fail(String message, Mono<T> monoData) {
         return createR(ERR, message, monoData);
     }
 
-    public static <T> Mono<RW<T>> fail(String code, String message,Mono<T> monoData) {
-        return createR(code, message,monoData);
+    public static <T> Mono<RW<T>> fail(String code, String message, Mono<T> monoData) {
+        return createR(code, message, monoData);
     }
 
-    public static <T> Mono<RW<T>> success(String message,Mono<T> monoData) {
-        return createR(OK, message,monoData);
+    public static <T> Mono<RW<T>> success(String message, Mono<T> monoData) {
+        return createR(OK, message, monoData);
     }
 
     public static <T> Mono<RW<T>> success(Mono<T> monoData) {
@@ -53,15 +53,14 @@ public class RW<T> implements Serializable {
     }
 
 
-
-   private static <T> Mono<RW<T>> createR(String code, String msg, Mono<T> monoData){
-      return monoData.map(data->{
-           final RW rw = new RW();
-           rw.setData(data);
-           rw.setCode(code);
-           rw.setMsg(msg);
-           return rw;
-       });
+    private static <T> Mono<RW<T>> createR(String code, String msg, Mono<T> monoData) {
+        return monoData.map(data -> {
+            final RW rw = new RW();
+            rw.setData(data);
+            rw.setCode(code);
+            rw.setMsg(msg);
+            return rw;
+        });
 
     }
 
@@ -80,7 +79,7 @@ public class RW<T> implements Serializable {
         this.data = result;
     }
 
-    public boolean isSuccess(){
+    public boolean isSuccess() {
         return OK.equals(code);
     }