You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
2.4 KiB
Java
67 lines
2.4 KiB
Java
package com.engine.organization.util;
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.engine.core.impl.Service;
|
|
import com.engine.organization.entity.LoggerContext;
|
|
import com.engine.organization.entity.logview.bo.FieldBaseEquator;
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
|
import java.lang.reflect.Method;
|
|
import java.util.List;
|
|
|
|
/**
|
|
* @author:dxfeng
|
|
* @createTime: 2022/07/04
|
|
* @version: 1.0
|
|
*/
|
|
public class OrganizationWrapper extends Service {
|
|
|
|
/**
|
|
* 记录操作日志
|
|
*
|
|
* @param clazz 调用类
|
|
* @param value 对象名称
|
|
* @param params 传参
|
|
* @param before 原始对象
|
|
* @param after 更新后对象
|
|
*/
|
|
public void writeOperateLog(Class clazz, String value, String params,
|
|
Object before, Object after) {
|
|
Method method = clazz.getEnclosingMethod();
|
|
LoggerContext loggerContext;
|
|
if (null != before) {
|
|
if (null != after) {
|
|
FieldBaseEquator fieldBaseEquator = new FieldBaseEquator();
|
|
List<String> diffFields = fieldBaseEquator.getDiffFields(before, after);
|
|
if (CollectionUtils.isEmpty(diffFields)) {
|
|
return;
|
|
}
|
|
StringBuilder message = new StringBuilder();
|
|
for (int i = 0; i < diffFields.size(); i++) {
|
|
message.append(i + 1).append(".").append(diffFields.get(i)).append("<br/>");
|
|
}
|
|
loggerContext = LoggerContext.builder().operatorId(user.getUID()).value(value).clientIp(user.getLoginip()).paramsStr(params).operatorName(user.getLastname()).message(message.toString()).build();
|
|
|
|
} else {
|
|
loggerContext = LoggerContext.builder().operatorId(user.getUID()).value(value).clientIp(user.getLoginip()).paramsStr(params).operatorName(user.getLastname()).message(JSON.toJSONString(before)).build();
|
|
}
|
|
LogAspect logAspect = new LogAspect(clazz, method, loggerContext);
|
|
logAspect.start();
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* @param clazz 调用类
|
|
* @param value 对象名称
|
|
* @param params 传参
|
|
* @param message 日志描述信息
|
|
*/
|
|
public void writeOperateLog(Class clazz, String value, String params,
|
|
String message) {
|
|
writeOperateLog(clazz, value, params, message, null);
|
|
}
|
|
|
|
|
|
}
|