weaver-hrm-organization/src/com/engine/organization/util/OrganizationWrapper.java

67 lines
2.4 KiB
Java
Raw Normal View History

2022-07-05 09:39:00 +08:00
package com.engine.organization.util;
2022-07-07 14:19:56 +08:00
import com.alibaba.fastjson.JSON;
2022-07-05 09:39:00 +08:00
import com.engine.core.impl.Service;
import com.engine.organization.entity.LoggerContext;
2022-07-07 14:19:56 +08:00
import com.engine.organization.entity.logview.bo.FieldBaseEquator;
import org.apache.commons.collections.CollectionUtils;
2022-07-05 09:39:00 +08:00
import java.lang.reflect.Method;
2022-07-07 14:19:56 +08:00
import java.util.List;
2022-07-05 09:39:00 +08:00
/**
* @author:dxfeng
* @createTime: 2022/07/04
* @version: 1.0
*/
public class OrganizationWrapper extends Service {
/**
* 记录操作日志
*
2022-07-07 14:19:56 +08:00
* @param clazz 调用类
* @param value 对象名称
* @param params 传参
* @param before 原始对象
* @param after 更新后对象
2022-07-05 09:39:00 +08:00
*/
2022-07-07 14:19:56 +08:00
public void writeOperateLog(Class clazz, String value, String params,
Object before, Object after) {
2022-07-05 09:39:00 +08:00
Method method = clazz.getEnclosingMethod();
2022-07-07 14:19:56 +08:00
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);
2022-07-05 09:39:00 +08:00
}
}