package com.cabletech.common.base;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.aspectj.lang.ProceedingJoinPoint;
import com.cabletech.baseinfo.business.entity.UserInfo;
import com.cabletech.business.base.model.UserActionLog;
import com.cabletech.business.base.service.UserActionLogService;
import com.cabletech.common.servlet.SysServlet;
/**
* 日志Aop
* @author zhaobi
* @date 2012-9-14
*/
public class LogHandlerAOP {
@Resource(name = "userActionLogService")
protected UserActionLogService userActionLogService;
/**
* 日志记录
* @param pjp
* @return
* @throws Throwable
*/
public Object RecordLog(ProceedingJoinPoint pjp) throws Throwable {
String className = pjp.getTarget().getClass().getSimpleName();
String methodName = pjp.getSignature().getName();
Object obj = pjp.proceed();
HttpServletRequest request = SysServlet.getRequest();
if (request != null) {
UserInfo userInfo = SysServlet.getUserinfo();
UserActionLog entity = new UserActionLog();
entity.setClass_method(className);
entity.setPersonid(userInfo.getId());
entity.setLoginip(request.getRemoteAddr());
entity.setMenuid(request.getRequestURL().toString());
if (methodName.toLowerCase().contains("save")) {
entity.setMethod_desc("保存操作");
entity.setRecordid(methodName);
if (pjp.getArgs().length > 0) {
entity.setRecord(pjp.getArgs()[0].toString());
}
userActionLogService.savelog(entity);
} else if (methodName.toLowerCase().contains("delete")) {
entity.setMethod_desc("删除操作");
entity.setRecordid(methodName);
if (pjp.getArgs().length > 0) {
entity.setRecord(pjp.getArgs()[0].toString());
}
userActionLogService.savelog(entity);
} else if (methodName.toLowerCase().contains("add")) {
entity.setMethod_desc("添加操作");
entity.setRecordid(methodName);
if (pjp.getArgs().length > 0) {
entity.setRecord(pjp.getArgs()[0].toString());
}
userActionLogService.savelog(entity);
} else if (methodName.toLowerCase().contains("update")) {
entity.setMethod_desc("更新操作");
entity.setRecordid(methodName);
if (pjp.getArgs().length > 0 && pjp.getArgs().length <3000) {
entity.setRecord(pjp.getArgs()[0].toString());
}
userActionLogService.savelog(entity);
}
}
return obj;
}
}