From e7b3a5e891287b1291d2ac38f7c83d5d73bc7906 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期六, 08 十月 2022 08:49:01 +0800 Subject: [PATCH] 1 --- src/main/java/com/lf/server/aspect/LogAspect.java | 140 ++++++++++++++++++++++++++++++++++------------ 1 files changed, 102 insertions(+), 38 deletions(-) diff --git a/src/main/java/com/lf/server/aspect/LogAspect.java b/src/main/java/com/lf/server/aspect/LogAspect.java index cfc6e11..527b555 100644 --- a/src/main/java/com/lf/server/aspect/LogAspect.java +++ b/src/main/java/com/lf/server/aspect/LogAspect.java @@ -1,12 +1,22 @@ package com.lf.server.aspect; +import com.lf.server.entity.sys.OperateEntity; +import com.lf.server.entity.sys.UsersEntity; +import com.lf.server.helper.WebHelper; +import com.lf.server.service.sys.OperateService; +import com.lf.server.service.sys.TokenService; +import io.swagger.annotations.Api; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Pointcut; import org.aspectj.lang.reflect.MethodSignature; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import javax.servlet.http.HttpServletRequest; import java.lang.reflect.Method; /** @@ -16,63 +26,117 @@ @Aspect @Component public class LogAspect { - @Pointcut("") - public void logPointCut() { + @Autowired + private TokenService tokenService; + @Autowired + private OperateService operateService; + + private final static String SELECT = "select"; + + private final static String INSERT = "insert"; + + private final static String UPDATE = "update"; + + private final static String DELETE = "delete"; + + private final static String UPLOAD = "upload"; + + private final static String DOWNLOAD = "download"; + + private static final Log log = LogFactory.getLog(LogAspect.class); + + @Pointcut("@annotation(com.lf.server.aspect.SysLog)") + public void logPointCut() { + // } + /** + * 鐜粫閫氱煡 @Around锛屼篃鍙互浣跨敤 @Before (鍓嶇疆閫氱煡) 鎴� @After (鍚庣疆閫氱煡) + */ @Around("logPointCut()") public Object around(ProceedingJoinPoint point) throws Throwable { long beginTime = System.currentTimeMillis(); + // 鎵ц鏂规硶 Object result = point.proceed(); // 鎵ц鏃堕暱(姣) long time = System.currentTimeMillis() - beginTime; - // System.out.println("time:"+time) // 淇濆瓨鏃ュ織 - saveLogAction(point, time); + saveLog(point, time); return result; } - private void saveLogAction(ProceedingJoinPoint joinPoint, long time) { - MethodSignature signature = (MethodSignature) joinPoint.getSignature(); - Method method = signature.getMethod(); - /*LogAction logAction = new LogAction(); - com.landtool.lanbase.common.annotation.LogAction log = method.getAnnotation(com.landtool.lanbase.common.annotation.LogAction.class); - if(log != null){ - // 娉ㄨВ涓婄殑鎻忚堪 - String[] list = log.value().split(","); - logAction.setLargemodel(list[0]); //澶фā鍧� - logAction.setSmallmodel(list[1]);//灏忔ā鍧� - logAction.setRemark(list[2]); //澶囨敞 - logAction.setActiontype(list[3]);//鎿嶄綔绫诲瀷 + /** + * 淇濆瓨鏃ュ織 + */ + private void saveLog(ProceedingJoinPoint joinPoint, long time) { + try { + MethodSignature signature = (MethodSignature) joinPoint.getSignature(); + Class<?> clazz = joinPoint.getTarget().getClass(); + Method method = signature.getMethod(); - //logAction.setRemark(log.value()); - //logAction.setActiontype(log.value()); + HttpServletRequest req = WebHelper.getRequest(); + String url = req.getServletPath(); + + OperateEntity oe = new OperateEntity(); + oe.setIp(WebHelper.getIpAddress(req)); + oe.setUrl(url); + oe.setExec(time); + + // 璁剧疆妯″潡 + Api api = clazz.getAnnotation(Api.class); + if (api != null) { + oe.setModular(api.tags()[0]); + } + + // 璁剧疆绫诲悕\鏂规硶鍚嶃�佺被鍒� + oe.setClazz(clazz.getName() + "." + method.getName()); + oe.setType(getType(method.getName())); + + // 璁剧疆澶囨敞 + SysLog sysLog = method.getAnnotation(SysLog.class); + if (sysLog != null) { + oe.setBak(sysLog.value()); + } + + UsersEntity ue = tokenService.getCurrentUser(req); + if (ue != null) { + oe.setUserid(ue.getId()); + } + + operateService.insertOperate(oe); + } catch (Exception ex) { + log.error(ex.getStackTrace()); + } + } + + /** + * 鑾峰彇鎿嶄綔绫诲瀷 + */ + private static int getType(String methodName) { + if (methodName.indexOf(SELECT) > -1) { + return 1; + } + if (methodName.indexOf(INSERT) > -1) { + return 2; + } + if (methodName.indexOf(UPDATE) > -1) { + return 3; + } + if (methodName.indexOf(DELETE) > -1) { + return 4; + } + if (methodName.indexOf(UPLOAD) > -1) { + return 5; + } + if (methodName.indexOf(DOWNLOAD) > -1) { + return 6; } - //鑾峰彇request - HttpServletRequest request = HttpContextUtils.getHttpServletRequest(); - String url=request.getServletPath(); - logAction.setRequesturl(url); - //璁剧疆IP鍦板潃 - logAction.setRequestip(IPUtils.getIpAddr(request)); - - //鐢ㄦ埛鍚� - Long userid = ((OrgUser) SecurityUtils.getSubject().getPrincipal()).getUserid(); - logAction.setUserid(userid); - - logAction.setAppid(loginConfig.getAppId()); - - //logAction.setLargemodel(loginConfig.getAppFullName()); - - - - - //淇濆瓨绯荤粺鏃ュ織 - logActionService.save(logAction);*/ + return 0; } } -- Gitblit v1.9.3