package cn.jeesoft.mvc.fn;
import java.lang.reflect.Field;
import java.util.List;
import cn.jeesoft.core.freemarker.fn.TemplateMethod;
import cn.jeesoft.core.utils.StringUtils;
import cn.jeesoft.mvc.bean.Admin;
import cn.jeesoft.mvc.helper.LoginUserHolder;
import freemarker.template.TemplateModelException;
/**
* 获取当前登录的管理员
*/
public class CurrentAdminGetter implements TemplateMethod {
@Override
public Object exec(List<Object> arguments) throws TemplateModelException {
Admin loginAdmin = LoginUserHolder.getLoginAdmin();
if (loginAdmin!=null && StringUtils.isEmpty(loginAdmin.getNickname())) {
loginAdmin.setNickname(loginAdmin.getPhone());
}
if (loginAdmin == null) {
return null;
}
// 直接获取某个属性的值
if (arguments != null && !arguments.isEmpty()) {
Object fieldNameObj = arguments.get(0);
String fieldName = fieldNameObj!=null ? String.valueOf(fieldNameObj) : "";
try {
Field field = Admin.class.getDeclaredField(fieldName);
field.setAccessible(true);
Object fieldValue = field.get(loginAdmin);
if (fieldValue == null) {
fieldValue = "";
}
return fieldValue;
} catch (Exception e) { }
}
return loginAdmin;
}
}