From 4d5eff3b824dac8e50400b2ec1114cba4ed6a87c Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Wed, 07 Apr 2021 17:05:43 +0800
Subject: [PATCH] screen-manage     完成sysarea模块查询     拦截器逻辑代码完成     修改organization和accountBug

---
 screen-manage/src/main/java/com/moral/api/aop/log/OperationLogAspect.java |  106 ++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 73 insertions(+), 33 deletions(-)

diff --git a/screen-manage/src/main/java/com/moral/api/aop/log/OperationLogAspect.java b/screen-manage/src/main/java/com/moral/api/aop/log/OperationLogAspect.java
index f7b53a4..8ac76a1 100644
--- a/screen-manage/src/main/java/com/moral/api/aop/log/OperationLogAspect.java
+++ b/screen-manage/src/main/java/com/moral/api/aop/log/OperationLogAspect.java
@@ -1,18 +1,29 @@
 package com.moral.api.aop.log;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.moral.api.entity.ManageLog;
 import com.moral.api.entity.Organization;
 import com.moral.api.mapper.ManageLogMapper;
+import com.moral.api.mapper.OrganizationMapper;
+import com.moral.api.pojo.dto.login.AccountInfoDTO;
+import com.moral.api.pojo.form.organization.OrganizationDeleteForm;
 import com.moral.api.pojo.form.organization.OrganizationInsertForm;
+import com.moral.api.pojo.form.organization.OrganizationUpdateForm;
 import com.moral.constant.Constants;
+import com.moral.constant.ResponseCodeEnum;
+import com.moral.util.TokenUtils;
 import com.moral.util.WebUtils;
+import lombok.Data;
 import org.aspectj.lang.JoinPoint;
 import org.aspectj.lang.annotation.AfterReturning;
 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.beans.factory.annotation.Value;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.context.request.RequestAttributes;
@@ -20,6 +31,7 @@
 
 import javax.servlet.http.HttpServletRequest;
 import java.lang.reflect.Method;
+import java.util.Map;
 
 /**
  * @ClassName OperationLogAspect
@@ -30,10 +42,18 @@
  **/
 @Aspect
 @Component
+@ConfigurationProperties(prefix = "log-aspect")
+@Data
 public class OperationLogAspect {
 
     @Autowired
     ManageLogMapper manageLogMapper;
+
+    @Autowired
+    OrganizationMapper organizationMapper;
+
+    Map<String,String> organizationFormMap;
+
 
     /**
      * @Description: ������������������OperationLogAnno���������������������
@@ -55,63 +75,83 @@
      * @Date: 2021/3/31
      */
     @AfterReturning(returning = "result", value = "pointCut()")
+    @Transactional
     public void saveOperLog(JoinPoint joinPoint, Object result) throws Throwable {
+        //������������������������������������������������
+        Map resultMap = JSONObject.parseObject(JSONObject.toJSONString(result), Map.class);
+        if (!ResponseCodeEnum.SUCCESS.getCode().equals(resultMap.get("code")))
+            return;
         //������������������
         RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
         HttpServletRequest request = (HttpServletRequest) requestAttributes.resolveReference(RequestAttributes.REFERENCE_REQUEST);
         Object parameters = request.getAttribute("parameters");
+        String token = request.getHeader("token");
         //������module���type
         MethodSignature signature = (MethodSignature) joinPoint.getSignature();//���������������������������
         Method method = signature.getMethod();//������������������������
         OperationLogAnno anno = method.getAnnotation(OperationLogAnno.class);//���������������������
         String module = anno.module();//���������������������
         String type = anno.type();//���������������������
-        saveLog(request,parameters, module, type);
+        //������������������id ip ������
+        Integer id = Integer.parseInt(TokenUtils.getUidByToken(token));
+        String ip = WebUtils.getIpAddr(request);
+        AccountInfoDTO account = (AccountInfoDTO) TokenUtils.getUserInfoByToken(token);
+        String accountName = account.getAccount().getUserName();
+        //������content
+        String content = getContent(type,module,parameters);
+        content = content+"���������������"+accountName+";";
+        //���������������
+        ManageLog manageLog = new ManageLog();
+        manageLog.setContent(content);
+        manageLog.setIp(ip);
+        manageLog.setAccountId(id);
+        manageLogMapper.insert(manageLog);
+
     }
 
-    /**
-     * @Description: ������������
-     * @Param: [paramters, module, type]
-     * @return: void
-     * @Author: ���������
-     * @Date: 2021/3/31
-     */
-    public void saveLog(HttpServletRequest request,Object paramters, String module, String type) {
+    public String getContent(String type, String module,Object parameters) {
+        String content = "";
         if (module.equals(Constants.ORGANIZATION_MODULE_NAME)) {
-            saveOrganizationLog(request,paramters, module, type);
+            content = getOrganizationContent(type,parameters);
         }
+
+        return content;
     }
 
     /**
-     * @Description: ������������������
-     * @Param: [paramters, module, type]
-     * @return: void
-     * @Author: ���������
-     * @Date: 2021/3/31
-     */
-    @Transactional
-    public void saveOrganizationLog(HttpServletRequest request,Object paramters, String module, String type) {
+    * @Description: ������������������������������
+            * @Param: [type, parameters]
+            * @return: java.lang.String
+            * @Author: ���������
+            * @Date: 2021/4/1
+            */
+    public String getOrganizationContent(String type,Object parameters) {
+        StringBuilder content = new StringBuilder();
         if (type.equals(Constants.INSERT_OPERATE_TYPE)) {//������������������������������
-            OrganizationInsertForm form = JSON.parseObject(JSON.toJSONString(paramters), OrganizationInsertForm.class);
-            Integer accountId = 1;//������ ������������
-            String accountName = "������������";
+            OrganizationInsertForm form = JSON.parseObject(JSON.toJSONString(parameters), OrganizationInsertForm.class);
             String organizationName = form.getName();
-            String ip = WebUtils.getIpAddr(request);
-            String content = accountName+"���������������������"+organizationName;
-
-            ManageLog manageLog = new ManageLog();
-            manageLog.setContent(content);
-            manageLog.setIp(ip);
-            manageLog.setAccountId(accountId);
-            manageLog.setModule(module);
-            manageLog.setType(type);
-            manageLogMapper.insert(manageLog);
+            content.append("������������������").append(organizationName).append(";");
         } else if (type.equals(Constants.DELETE_OPERATE_TYPE)) { //������������������������
-
+            OrganizationDeleteForm form = JSON.parseObject(JSON.toJSONString(parameters), OrganizationDeleteForm.class);
+            Organization organization = organizationMapper.selectById(form.getOrganizationId());
+            String organizationName = organization.getName();
+            content.append("������������������").append(organizationName).append(";");
         } else if (type.equals(Constants.UPDATE_OPERATE_TYPE)) {  //������������������������
-
+            OrganizationUpdateForm form = JSON.parseObject(JSON.toJSONString(parameters), OrganizationUpdateForm.class);
+            Map<String,Object> formMap = JSON.parseObject(JSON.toJSONString(parameters), Map.class);
+            Organization organization = organizationMapper.selectById(form.getOrganizationId());
+            String organizationName = organization.getName();
+            content.append("������������������").append(organizationName).append(";");
+            //���formMap������Key���������������������������������
+            formMap.forEach((k,v)->{
+                String key = organizationFormMap.get(k);
+                if(key!=null)
+                    content.append(key).append("->").append(v).append(";");
+            });
         }
 
+        return content.toString();
     }
 
+
 }

--
Gitblit v1.8.0