From 21f0baadf31c87b052f7fb9ae8e1bf711585d93b Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Tue, 16 Jan 2024 20:10:10 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=908.1.0=E3=80=91=E3=80=90log=E3=80=91?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=97=A5=E5=BF=97=E6=9F=A5=E8=AF=A2=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E5=BD=93=E5=89=8D=E7=94=A8=E6=88=B7=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E7=9A=84=E5=85=AC=E5=8F=B8id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../log/api/factory/appender/AuthedLogAppender.java | 6 +++++- .../roses/kernel/log/api/pojo/record/LogRecordDTO.java | 8 ++++++++ .../kernel/log/requestapi/aop/RequestApiLogRecordAop.java | 2 +- .../roses/kernel/log/requestapi/entity/SysLog.java | 6 ++++++ .../log/requestapi/service/impl/SysLogServiceImpl.java | 2 +- .../mysql/V8.1.0_20240116_2002__add_log_org_field.sql | 2 ++ 6 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 kernel-d-log/log-spring-boot-starter/src/main/resources/db/migration/mysql/V8.1.0_20240116_2002__add_log_org_field.sql diff --git a/kernel-d-log/log-api/src/main/java/cn/stylefeng/roses/kernel/log/api/factory/appender/AuthedLogAppender.java b/kernel-d-log/log-api/src/main/java/cn/stylefeng/roses/kernel/log/api/factory/appender/AuthedLogAppender.java index 5e25a8cdb..4de4eed48 100644 --- a/kernel-d-log/log-api/src/main/java/cn/stylefeng/roses/kernel/log/api/factory/appender/AuthedLogAppender.java +++ b/kernel-d-log/log-api/src/main/java/cn/stylefeng/roses/kernel/log/api/factory/appender/AuthedLogAppender.java @@ -42,7 +42,7 @@ public class AuthedLogAppender { * @author fengshuonan * @since 2020/10/27 18:22 */ - public static void appendAuthedHttpLog(LogRecordDTO logRecordDTO, String token, Long userId) { + public static void appendAuthedHttpLog(LogRecordDTO logRecordDTO, String token, Long userId, Long orgId) { // 填充当前登录的用户信息 try { @@ -51,6 +51,10 @@ public class AuthedLogAppender { // 填充登录用户的userId logRecordDTO.setUserId(userId); + + // 填充用户登录的机构id + logRecordDTO.setUserCurrentOrgId(orgId); + } catch (Exception ignored) { // 获取不到用户登录信息,就不填充 } diff --git a/kernel-d-log/log-api/src/main/java/cn/stylefeng/roses/kernel/log/api/pojo/record/LogRecordDTO.java b/kernel-d-log/log-api/src/main/java/cn/stylefeng/roses/kernel/log/api/pojo/record/LogRecordDTO.java index 74a1a5bac..2ff37d80b 100644 --- a/kernel-d-log/log-api/src/main/java/cn/stylefeng/roses/kernel/log/api/pojo/record/LogRecordDTO.java +++ b/kernel-d-log/log-api/src/main/java/cn/stylefeng/roses/kernel/log/api/pojo/record/LogRecordDTO.java @@ -99,6 +99,14 @@ public class LogRecordDTO { @SimpleFieldFormat(processClass = UserNameFormatProcess.class) private Long userId; + /** + * 用户请求时候的登录机构id + *

+ * 如果是http请求,并且用户已经登录,可以带这项 + */ + @ChineseDescription("用户请求时候的登录机构id") + private Long userCurrentOrgId; + /** * 客户端的ip *

diff --git a/kernel-d-log/log-business-requestapi/src/main/java/cn/stylefeng/roses/kernel/log/requestapi/aop/RequestApiLogRecordAop.java b/kernel-d-log/log-business-requestapi/src/main/java/cn/stylefeng/roses/kernel/log/requestapi/aop/RequestApiLogRecordAop.java index 07e2880b7..4e65dfc86 100644 --- a/kernel-d-log/log-business-requestapi/src/main/java/cn/stylefeng/roses/kernel/log/requestapi/aop/RequestApiLogRecordAop.java +++ b/kernel-d-log/log-business-requestapi/src/main/java/cn/stylefeng/roses/kernel/log/requestapi/aop/RequestApiLogRecordAop.java @@ -175,7 +175,7 @@ public class RequestApiLogRecordAop implements Ordered { // 填充用户登录信息 LoginUser loginUserNullable = LoginContext.me().getLoginUserNullable(); if (loginUserNullable != null) { - AuthedLogAppender.appendAuthedHttpLog(logRecordDTO, loginUserNullable.getToken(), loginUserNullable.getUserId()); + AuthedLogAppender.appendAuthedHttpLog(logRecordDTO, loginUserNullable.getToken(), loginUserNullable.getUserId(), loginUserNullable.getCurrentOrgId()); } // 填充http接口请求信息 diff --git a/kernel-d-log/log-business-requestapi/src/main/java/cn/stylefeng/roses/kernel/log/requestapi/entity/SysLog.java b/kernel-d-log/log-business-requestapi/src/main/java/cn/stylefeng/roses/kernel/log/requestapi/entity/SysLog.java index fc2316c80..7f631f5d4 100644 --- a/kernel-d-log/log-business-requestapi/src/main/java/cn/stylefeng/roses/kernel/log/requestapi/entity/SysLog.java +++ b/kernel-d-log/log-business-requestapi/src/main/java/cn/stylefeng/roses/kernel/log/requestapi/entity/SysLog.java @@ -97,6 +97,12 @@ public class SysLog extends BaseEntity { @TableField(value = "user_id") private Long userId; + /** + * 用户请求时候的登录机构id + */ + @TableField(value = "user_current_org_id") + private Long userCurrentOrgId; + /** * 请求http方法 */ diff --git a/kernel-d-log/log-business-requestapi/src/main/java/cn/stylefeng/roses/kernel/log/requestapi/service/impl/SysLogServiceImpl.java b/kernel-d-log/log-business-requestapi/src/main/java/cn/stylefeng/roses/kernel/log/requestapi/service/impl/SysLogServiceImpl.java index 459a7d31f..ade41ef23 100644 --- a/kernel-d-log/log-business-requestapi/src/main/java/cn/stylefeng/roses/kernel/log/requestapi/service/impl/SysLogServiceImpl.java +++ b/kernel-d-log/log-business-requestapi/src/main/java/cn/stylefeng/roses/kernel/log/requestapi/service/impl/SysLogServiceImpl.java @@ -87,7 +87,7 @@ public class SysLogServiceImpl extends ServiceImpl impleme LambdaQueryWrapper wrapper = createWrapper(logManagerRequest); // 只查询需要字段 - wrapper.select(SysLog::getLogId, SysLog::getRequestUrl, SysLog::getLogContent, SysLog::getUserId, SysLog::getAppName, + wrapper.select(SysLog::getLogId, SysLog::getRequestUrl, SysLog::getLogContent, SysLog::getUserId, SysLog::getUserCurrentOrgId, SysLog::getAppName, BaseEntity::getCreateTime); // 转化实体 diff --git a/kernel-d-log/log-spring-boot-starter/src/main/resources/db/migration/mysql/V8.1.0_20240116_2002__add_log_org_field.sql b/kernel-d-log/log-spring-boot-starter/src/main/resources/db/migration/mysql/V8.1.0_20240116_2002__add_log_org_field.sql new file mode 100644 index 000000000..a717eb67c --- /dev/null +++ b/kernel-d-log/log-spring-boot-starter/src/main/resources/db/migration/mysql/V8.1.0_20240116_2002__add_log_org_field.sql @@ -0,0 +1,2 @@ +ALTER TABLE `sys_log_api` +ADD COLUMN `user_current_org_id` bigint NULL COMMENT '用户请求时候的登录机构id' AFTER `user_id`; \ No newline at end of file