| | |
| | | /**定义切点*/ |
| | | @Pointcut(value = "execution(public * com.whyc..controller.*.add*(..))" + |
| | | "|| execution(public * com.whyc..controller.*.delete*(..))" + |
| | | "|| execution(public * com.whyc..controller.*.update*(..))" |
| | | "|| execution(public * com.whyc..controller.*.update*(..))"+ |
| | | "|| execution(public * com.whyc..controller.*.get*(..))" + |
| | | "|| execution(public * com.whyc..controller.*.search*(..))"+ |
| | | "|| execution(public * com.whyc..controller.*.change*(..))"+ |
| | | "|| execution(public * com.whyc..controller.*.login*(..))" |
| | | ) |
| | | private void operationLogPointcut(){}; |
| | | |
| | |
| | | public void doAfterReturnOperation(JoinPoint point,Object resp){ |
| | | //用户id |
| | | Long uId = ActionUtil.getUser().getId(); |
| | | String name=ActionUtil.getUser().getName(); |
| | | |
| | | Signature signature = point.getSignature(); |
| | | String methodSignature = signature.toString(); |
| | |
| | | Integer operationType = 0; |
| | | String operationTypeName = null; |
| | | if(methodName.contains("update")){ |
| | | //提取单项-修改配置 |
| | | if(fullClassName.contains("pageParam")){ |
| | | operationTypeName = UserOperation.TYPE_PARAM_CHANGE.getTypeName(); |
| | | operationType = UserOperation.TYPE_PARAM_CHANGE.getType(); |
| | | } |
| | | //提取单项-密码修改 |
| | | else if(fullClassName.contains("updatePassword")){ |
| | | operationTypeName = UserOperation.TYPE_PASSWORD_CHANGE.getTypeName(); |
| | | operationType = UserOperation.TYPE_PASSWORD_CHANGE.getType(); |
| | | } |
| | | else { |
| | | operationTypeName = UserOperation.TYPE_UPDATE.getTypeName(); |
| | | operationType = UserOperation.TYPE_UPDATE.getType(); |
| | | } |
| | | operationTypeName = UserOperation.TYPE_UPDATE.getTypeName(); |
| | | operationType = UserOperation.TYPE_UPDATE.getType(); |
| | | }else if (methodName.contains("add")){ |
| | | operationTypeName = UserOperation.TYPE_ADD.getTypeName(); |
| | | operationType = UserOperation.TYPE_ADD.getType(); |
| | | }else if (methodName.contains("delete")){ |
| | | operationTypeName = UserOperation.TYPE_DELETE.getTypeName(); |
| | | operationType = UserOperation.TYPE_DELETE.getType(); |
| | | }/*else if (methodName.contains("login")){ |
| | | }else if (methodName.contains("get")||methodName.contains("search")){ |
| | | operationTypeName = UserOperation.TYPE_GET.getTypeName(); |
| | | operationType = UserOperation.TYPE_GET.getType(); |
| | | }else if (methodName.contains("change")){ |
| | | if(fullClassName.contains("SnId")){ |
| | | operationTypeName = UserOperation.TYPE_PASSWORD_CHANGE.getTypeName(); |
| | | operationType = UserOperation.TYPE_PASSWORD_CHANGE.getType(); |
| | | }else { |
| | | operationTypeName = UserOperation.TYPE_UPDATE.getTypeName(); |
| | | operationType = UserOperation.TYPE_UPDATE.getType(); |
| | | } |
| | | }else if (methodName.contains("login")){ |
| | | operationTypeName = UserOperation.TYPE_LOGIN.getTypeName(); |
| | | operationType = UserOperation.TYPE_LOGIN.getType(); |
| | | }else if (methodName.contains("logout")){ |
| | | operationTypeName = UserOperation.TYPE_LOGOUT.getTypeName(); |
| | | operationType = UserOperation.TYPE_LOGOUT.getType(); |
| | | }*/ |
| | | |
| | | } |
| | | //获取类型 |
| | | String[] fullClassNameSplit = fullClassName.split("\\."); |
| | | String className = fullClassNameSplit[fullClassNameSplit.length-1].replace("Controller","模块"); |
| | |
| | | |
| | | HashMap<String, Object> map = new HashMap<>(); |
| | | for (int i = 0; i < parameterNames.length; i++) { |
| | | map.put(parameterNames[i],args[i].toString()); |
| | | if(args[i]!=null){ |
| | | map.put(parameterNames[i],args[i].toString()); |
| | | } |
| | | } |
| | | //人脸接口的添加参数是图片的base64字符串,不存储 |
| | | /*//人脸接口的添加参数是图片的base64字符串,不存储 |
| | | if(methodSignature.contains("FaceController.add")||methodSignature.contains("FaceController.update")){ |
| | | map = new HashMap<>(); |
| | | } |
| | | |
| | | */ |
| | | String operationMsg = "执行了"+className+"的"+operationTypeName+"操作."; |
| | | String operationDetail = "具体调用方法为:"+methodName+",具体参数为:"+map.toString(); |
| | | |
| | | |
| | | service.recordOperationLog(uId,operationType,operationTime,terminalIp,operationMsg,operationDetail); |
| | | service.recordOperationLog(uId,name,operationType,operationTime,terminalIp,operationMsg,operationDetail); |
| | | |
| | | } |
| | | |