소스 검색

feat: syslog支持post响应参数保存(开发自发优化)

lixuesong 1 년 전
부모
커밋
4cec59a283

+ 5 - 0
db/v2.0/20240229.sql

@@ -9,3 +9,8 @@ create table sys_csm_user_relation
     primary key (user_id, parent_id)
 )
     comment 'csm用户关系表' charset = utf8mb4;
+
+
+alter table sys_log
+    add resp text null comment '响应信息' after params;
+

+ 2 - 2
hnqz-common/hnqz-common-log/src/main/java/com/qunzhixinxi/hnqz/common/log/aspect/SysLogAspect.java

@@ -50,11 +50,11 @@ public class SysLogAspect {
 		Object[] args = point.getArgs();
 		log.debug("[类名]:{},[方法]:{}", strClassName, strMethodName);
 
-		com.qunzhixinxi.hnqz.admin.api.entity.SysLog logVo = SysLogUtils.getSysLog(args);
-		logVo.setTitle(sysLog.value());
 		// 发送异步日志事件
 		Long startTime = System.currentTimeMillis();
 		Object obj = point.proceed();
+		com.qunzhixinxi.hnqz.admin.api.entity.SysLog logVo = SysLogUtils.getSysLog(args, obj);
+		logVo.setTitle(sysLog.value());
 		Long endTime = System.currentTimeMillis();
 		logVo.setTime(endTime - startTime);
 		publisher.publishEvent(new SysLogEvent(logVo));

+ 9 - 1
hnqz-common/hnqz-common-log/src/main/java/com/qunzhixinxi/hnqz/common/log/util/SysLogUtils.java

@@ -60,7 +60,14 @@ public class SysLogUtils {
 		return sysLog;
 	}
 
-	public SysLog getSysLog(Object[] args) {
+	/**
+	 * 获取SYS日志
+	 *
+	 * @param args 请求参数
+	 * @param obj  响应参数
+	 * @return {@link SysLog} 结果
+	 */
+	public SysLog getSysLog(Object[] args, Object obj) {
 		HttpServletRequest request = ((ServletRequestAttributes) Objects
 				.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
 		SysLog sysLog = new SysLog();
@@ -72,6 +79,7 @@ public class SysLogUtils {
 		sysLog.setUserAgent(request.getHeader("user-agent"));
 		Object o = ArrayUtil.get(args, 0);
 		sysLog.setParams(JSONUtil.toJsonStr(o));
+		sysLog.setResp(JSONUtil.toJsonStr(obj));
 		sysLog.setServiceId(getClientId());
 		return sysLog;
 	}

+ 5 - 0
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/entity/SysLog.java

@@ -80,6 +80,11 @@ public class SysLog implements Serializable {
 	 */
 	private String params;
 
+	/**
+	 * 响应信息
+	 */
+	private String resp;
+
 	/**
 	 * 执行时间
 	 */