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