From c4bd15f3b22bb10bec35444112a89385855211ca Mon Sep 17 00:00:00 2001 From: chenwenjian Date: Fri, 1 Nov 2024 18:12:27 +0800 Subject: [PATCH 1/4] =?UTF-8?q?feat(REQ-2997):=20message=E4=B8=AD=E5=86=99?= =?UTF-8?q?=E5=85=A5contextInfo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/web/WebLogController.java | 5 +-- .../server/service/impl/LogServiceImpl.java | 37 ++++++++++++------- 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/controller/web/WebLogController.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/controller/web/WebLogController.java index 89f4977..6111acf 100644 --- a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/controller/web/WebLogController.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/controller/web/WebLogController.java @@ -1,5 +1,6 @@ package cn.axzo.log.platform.server.controller.web; +import cn.axzo.framework.auth.annotation.PreBuildContext; import cn.axzo.log.platform.client.model.req.LogAddReq; import cn.axzo.log.platform.client.model.req.LogBatchAddReq; import cn.axzo.log.platform.client.model.req.LogBatchDeleteReq; @@ -7,13 +8,10 @@ import cn.axzo.log.platform.client.model.req.LogFindReq; import cn.axzo.log.platform.client.model.resp.LogResp; import cn.axzo.log.platform.server.dto.FindLogDto; import cn.axzo.log.platform.server.dto.FindLogResp; -import cn.axzo.log.platform.server.entity.LogEntity; import cn.axzo.log.platform.server.service.LogService; import cn.azxo.framework.common.model.CommonResponse; -import com.mongodb.BasicDBObject; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Value; -import org.springframework.data.mongodb.core.query.Query; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -30,6 +28,7 @@ import java.util.List; * @version 1.0 * @date 2024/9/11 18:16 */ +@PreBuildContext @RestController @RequestMapping("/webApi/log") @RequiredArgsConstructor diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/impl/LogServiceImpl.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/impl/LogServiceImpl.java index 4c4bf11..48ab5e1 100644 --- a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/impl/LogServiceImpl.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/impl/LogServiceImpl.java @@ -1,6 +1,8 @@ package cn.axzo.log.platform.server.service.impl; import cn.axzo.basics.common.util.NumberUtil; +import cn.axzo.framework.auth.domain.ContextInfo; +import cn.axzo.framework.auth.domain.ContextInfoHolder; import cn.axzo.framework.domain.ServiceException; import cn.axzo.log.platform.client.model.Condition; import cn.axzo.log.platform.client.model.req.LogAddReq; @@ -397,17 +399,17 @@ public class LogServiceImpl implements LogService { * @return true:合法,false:非法 */ public static Boolean isValidJsonObject(String str) { - if (JSONUtil.isTypeJSON(str)) { + if (JSONUtil.isTypeJSONObject(str)) { try { - JSONUtil.parseObj(str); + JSONObject.parseObject(str); return true; } catch (Exception e1) { - try { - JSONUtil.parseArray(str); - return true; - } catch (Exception e2) { - return false; - } +// try { +// JSONUtil.parseArray(str); +// return true; +// } catch (Exception e2) { +// return false; +// } } } return false; @@ -416,16 +418,23 @@ public class LogServiceImpl implements LogService { @NotNull private LogEntity buildToLogEntity(LogAddReq req) { String message = req.getMessage(); - if (JSONUtil.isTypeJSONArray(req.getMessage())) { - message = "{" + MESSAGE_FIELD_ARRAY_DEFAULT_KEY + ":" + req.getMessage() + "}"; - } - // 判断req.message字段是否是一个合法的json字符串 +// if (JSONUtil.isTypeJSONArray(req.getMessage())) { +// message = "{" + MESSAGE_FIELD_ARRAY_DEFAULT_KEY + ":" + req.getMessage() + "}"; +// } + // 判断req.message字段是否是一个合法的jsonObject字符串 if (Boolean.TRUE.equals(!isValidJsonObject(message))) { - throw new ServiceException("message is not a valid json string, message: " + message); + throw new ServiceException("message is not a valid json object string, message: " + message); } LogEntity logEntity = BeanUtil.copyProperties(req, LogEntity.class, "message"); logEntity.setTimestamp(System.currentTimeMillis()); - logEntity.setMessage(Document.parse(message)); + + Document msgDoc = Document.parse(message); + // 将用户上下文信息添加到message字段中 + ContextInfo contextInfo = ContextInfoHolder.get(); + if (Objects.nonNull(contextInfo)) { + msgDoc.append("userContextInfo", Document.parse(JSONObject.toJSONString(contextInfo))); + } + logEntity.setMessage(msgDoc); return logEntity; } } From 59b1e3a05e4b48c41b80f4eeadfece6cdf7a40dd Mon Sep 17 00:00:00 2001 From: chenwenjian Date: Mon, 2 Dec 2024 13:48:55 +0800 Subject: [PATCH 2/4] =?UTF-8?q?fix:=20=E5=85=81=E8=AE=B8=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E7=A3=81=E7=9B=98=E7=A9=BA=E9=97=B4=E8=BF=9B=E8=A1=8C=E6=8E=92?= =?UTF-8?q?=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/axzo/log/platform/server/service/impl/LogServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/impl/LogServiceImpl.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/impl/LogServiceImpl.java index 63d1365..80502fb 100644 --- a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/impl/LogServiceImpl.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/impl/LogServiceImpl.java @@ -203,6 +203,7 @@ public class LogServiceImpl implements LogService { log.info("findLogs filter: {}, skip: {}, limit: {}, sort: {}", filterDoc.toString(), skip, limit, sortDoc.toString()); ArrayList logEntityList = new ArrayList<>(); try (MongoCursor cursor = logCollection.find(filterDoc) + .allowDiskUse(true) .sort(sortDoc) .skip(skip) .limit(limit) From 21200684c388ca52a9debc04467c80883ffe9979 Mon Sep 17 00:00:00 2001 From: chenwenjian Date: Mon, 2 Dec 2024 15:06:15 +0800 Subject: [PATCH 3/4] =?UTF-8?q?fix:=20=E6=9F=A5=E8=AF=A2=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../axzo/log/platform/server/service/impl/LogServiceImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/impl/LogServiceImpl.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/impl/LogServiceImpl.java index 80502fb..9a5458d 100644 --- a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/impl/LogServiceImpl.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/impl/LogServiceImpl.java @@ -178,9 +178,10 @@ public class LogServiceImpl implements LogService { @Override public FindLogResp findLogs(FindLogDto req) { + log.info("raw find logs conditions: {}", JSONObject.toJSONString(req)); Document filterDoc = new Document(); int skip = 0; - int limit = 0; + int limit = 1000; Document sortDoc = new Document(); MongoCollection logCollection = mongoTemplate.getCollection("log"); From 31b3fb9c53248d9d7015192eac8bbb03d47583de Mon Sep 17 00:00:00 2001 From: chenwenjian Date: Mon, 2 Dec 2024 15:22:36 +0800 Subject: [PATCH 4/4] =?UTF-8?q?fix:=20=E6=9F=A5=E8=AF=A2=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../axzo/log/platform/server/service/impl/LogServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/impl/LogServiceImpl.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/impl/LogServiceImpl.java index 9a5458d..f3c22f3 100644 --- a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/impl/LogServiceImpl.java +++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/service/impl/LogServiceImpl.java @@ -216,8 +216,8 @@ public class LogServiceImpl implements LogService { } } FindLogResp findLogResp = new FindLogResp(); - findLogResp.setPageSize(req.getPageSize()); - findLogResp.setPageNum(req.getPageNum()); + findLogResp.setPageSize(limit); + findLogResp.setPageNum(NumberUtil.isPositiveNumber(req.getPageNum()) ? req.getPageNum() : 1); findLogResp.setTotal(0L); findLogResp.setData(logEntityList); if (CollUtil.isEmpty(logEntityList)) {