package com.appleframework.distributed.utils;
import com.appleframework.context.invoke.ThreadLocalOperatorContext;
import com.appleframework.core.utils.ReflectionUtility;
import com.appleframework.model.Operator;
import com.appleframework.model.OperatorUser;
public class ContextOperatorUtility {
private static String KEY_ID = "id";
private static String KEY_NAME = "name";
private static String KEY_CREATE_TYPE = "createType";
private static String KEY_CREATE_BY = "createBy";
private static String KEY_UPDATE_TYPE = "updateType";
private static String KEY_UPDATE_BY = "updateBy";
public static void fillOperatorForCreate(Object object, String key) {
Operator operator = ThreadLocalOperatorContext.getInstance().getOperator();
if (null != operator) {
try {
if (null == ReflectionUtility.getFieldValue(object, KEY_CREATE_TYPE)) {
Integer type = operator.getType().getIndex();
ReflectionUtility.setFieldValue(object, KEY_CREATE_TYPE, type);
}
} catch (Exception e) {
}
try {
OperatorUser user = operator.getUser();
String createBy = null;
if (null == key || key.equals(KEY_ID)) {
createBy = user.getId();
} else if (key.equals(KEY_NAME)) {
createBy = user.getName();
} else {
createBy = user.getExtend();
}
if (null == ReflectionUtility.getFieldValue(object, KEY_CREATE_BY)) {
ReflectionUtility.setFieldValue(object, KEY_CREATE_BY, createBy);
}
} catch (Exception e) {
}
}
}
public static void fillOperatorForUpdate(Object object, String key) {
Operator operator = ThreadLocalOperatorContext.getInstance().getOperator();
if (null != operator) {
try {
if (null == ReflectionUtility.getFieldValue(object, KEY_UPDATE_TYPE)) {
Integer type = operator.getType().getIndex();
ReflectionUtility.setFieldValue(object, KEY_UPDATE_TYPE, type);
}
} catch (Exception e) {
}
try {
OperatorUser user = operator.getUser();
String updateBy = null;
if (null == key || key.equals(KEY_ID)) {
updateBy = user.getId();
} else if (key.equals(KEY_NAME)) {
updateBy = user.getName();
} else {
updateBy = user.getExtend();
}
if (null == ReflectionUtility.getFieldValue(object, KEY_UPDATE_BY)) {
ReflectionUtility.setFieldValue(object, KEY_UPDATE_BY, updateBy);
}
} catch (Exception e) {
}
}
}
}