From ac625fa6aee52f467243c78764625cf053dcfe81 Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Wed, 25 Aug 2021 11:44:20 +0800
Subject: [PATCH] screen-manage         重构组织模块日志插入代码

---
 screen-common/src/main/java/com/moral/util/DateUtils.java                           |   25 ++++++++++++
 screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java |   74 +++++++++++++++++++++++++++++++++---
 screen-manage/src/main/java/com/moral/api/entity/Organization.java                  |   12 ++++++
 3 files changed, 103 insertions(+), 8 deletions(-)

diff --git a/screen-common/src/main/java/com/moral/util/DateUtils.java b/screen-common/src/main/java/com/moral/util/DateUtils.java
index 9084e65..9af501f 100644
--- a/screen-common/src/main/java/com/moral/util/DateUtils.java
+++ b/screen-common/src/main/java/com/moral/util/DateUtils.java
@@ -1,6 +1,7 @@
 package com.moral.util;
 
 
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.util.StringUtils;
 
 import java.math.BigDecimal;
@@ -13,7 +14,7 @@
 import java.time.ZonedDateTime;
 import java.util.*;
 
-
+@Slf4j
 public class DateUtils {
     /**
      * ������������(yyyy)
@@ -79,6 +80,11 @@
      * ������������(yyyy-MM-dd HH)
      * */
     public static final String yyyy_MM_dd_HH_EN = "yyyy-MM-dd HH";
+
+    /*
+    * Date���toString������
+    * */
+    public static final String EEE_MMM_dd_HH_mm_ss_zzz_yyyy = "EEE MMM dd HH:mm:ss zzz yyyy";
     /**
      * DateFormat������
      */
@@ -86,6 +92,23 @@
 
 
     /**
+    * @Description: Date���toString������������Date
+            * @Param: []
+            * @return: java.util.Date
+            * @Author: ���������
+            * @Date: 2021/8/25
+            */
+    public static Date dateStringToDate(String formatStr){
+        try {
+            SimpleDateFormat sdf = new SimpleDateFormat(EEE_MMM_dd_HH_mm_ss_zzz_yyyy, Locale.US);
+            return sdf.parse(formatStr);
+        } catch (ParseException e) {
+            log.error(e.getMessage());
+            return null;
+        }
+    }
+
+    /**
      * ������DateFormat
      *
      * @param formatStr
diff --git a/screen-manage/src/main/java/com/moral/api/entity/Organization.java b/screen-manage/src/main/java/com/moral/api/entity/Organization.java
index 905b786..a16e9dc 100644
--- a/screen-manage/src/main/java/com/moral/api/entity/Organization.java
+++ b/screen-manage/src/main/java/com/moral/api/entity/Organization.java
@@ -7,6 +7,7 @@
 import java.io.Serializable;
 import java.util.Date;
 
+import com.moral.anno.FieldName;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -33,6 +34,7 @@
     /**
      * ���Id
      */
+    @FieldName("���������Id")
     private Integer parentId;
 
     /**
@@ -43,6 +45,7 @@
     /**
      * ������������
      */
+    @FieldName("������������")
     private String name;
 
     /**
@@ -53,6 +56,7 @@
     /**
      * ������������
      */
+    @FieldName("������")
     private String provinceName;
 
     /**
@@ -63,6 +67,7 @@
     /**
      * ������������
      */
+    @FieldName("������")
     private String cityName;
 
     /**
@@ -73,6 +78,7 @@
     /**
      * ���������
      */
+    @FieldName("���")
     private String areaName;
 
     /**
@@ -83,26 +89,31 @@
     /**
      * ������������������������
      */
+    @FieldName("������������")
     private String locationLevelName;
 
     /**
      * ������
      */
+    @FieldName("������")
     private String address;
 
     /**
      * ���������
      */
+    @FieldName("������")
     private String phone;
 
     /**
      * ������
      */
+    @FieldName("������")
     private String email;
 
     /**
      * ���������
      */
+    @FieldName("������")
     private String wechat;
 
     /**
@@ -118,6 +129,7 @@
     /**
      * ������������
      */
+    @FieldName("������������")
     private Date expireTime;
 
     /**
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java
index b9c95b3..020db1e 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java
@@ -20,9 +20,11 @@
 import com.moral.api.service.OrganizationService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.moral.api.service.UserService;
+import com.moral.api.util.CompareFieldUtils;
 import com.moral.api.util.LogUtils;
 import com.moral.constant.Constants;
 import com.moral.constant.ResponseCodeEnum;
+import com.moral.pojo.CompareFieldResult;
 import com.moral.util.ConvertUtils;
 import com.moral.util.DateUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,6 +36,8 @@
 import org.springframework.web.context.request.ServletRequestAttributes;
 
 import javax.servlet.http.HttpServletRequest;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.function.Predicate;
 
@@ -103,10 +107,7 @@
         organizationDTO.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
 
         //������������������
-        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
-        StringBuilder content = new StringBuilder();
-        content.append("������������������").append(organization.getName() + ";");
-        logUtils.saveOperationForManage(request, content.toString(), Constants.INSERT_OPERATE_TYPE);
+        insertLog(organization);
         return organizationDTO;
     }
 
@@ -149,7 +150,7 @@
         organizationDTO.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
 
         //������������������
-        insertUpdateLog(organizationUpdateForm, organization, oldOrganization);
+        updateLog(oldOrganization,organization);
 
         return organizationDTO;
     }
@@ -245,14 +246,13 @@
         dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
         dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
         //������������������
-        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
         StringBuilder content = new StringBuilder();
         content.append("������������������").append(existOrganization.getName());
         if (form.getDeleteChildren().equals(Constants.DELETE_CHILDREN_ORG))
             content.append("���������������������;");
         else
             content.append(";");
-        logUtils.saveOperationForManage(request, content.toString(), Constants.DELETE_OPERATE_TYPE);
+        logUtils.saveOperationForManage(content.toString(), Constants.DELETE_OPERATE_TYPE);
 
         return dto;
     }
@@ -484,5 +484,65 @@
         }
     }
 
+    /**
+    * @Description: ������������������������
+            * @Param: [organization]
+            * @return: void
+            * @Author: ���������
+            * @Date: 2021/8/25
+            */
+    private void insertLog(Organization organization){
+        StringBuilder content = new StringBuilder();
+        content.append("������������������").append(organization.getName() + ";");
+        logUtils.saveOperationForManage(content.toString(), Constants.INSERT_OPERATE_TYPE);
+    }
+
+    public void updateLog(Organization oldOrganization,Organization newOrganization){
+        List<CompareFieldResult> results = CompareFieldUtils.compare(Organization.class, oldOrganization, newOrganization);
+        for (CompareFieldResult result : results) {
+            //���������������������������
+            if(result.getFieldName().equals("parentId")){
+                //���������id���������������
+                String oldData = result.getOldData();
+                String newData = result.getNewData();
+
+                if (!oldData.equals("0"))
+                    oldData = organizationMapper.selectById(Integer.parseInt(oldData)).getName();
+                else
+                    oldData = "null";
+
+                if (!newData.equals("0"))
+                    newData = organizationMapper.selectById(Integer.parseInt(newData)).getName();
+                else
+                    newData = "null";
+
+                result.setNewData(newData);
+                result.setOldData(oldData);
+                result.setFieldAnnoName("���������");
+            }
+
+            //������������������������
+            if(result.getFieldName().equals("expireTime")){
+                //DateToString���������������������yyyy-MM-dd
+                String oldData = result.getOldData();
+                String newData = result.getNewData();
+
+                if(oldData!=null){
+                    Date oldDate = DateUtils.dateStringToDate(oldData);
+                    oldData = DateUtils.dateToDateString(oldDate, "yyyy-MM-dd");
+                }
+
+                if(newData!=null){
+                    Date newDate = DateUtils.dateStringToDate(newData);
+                    newData = DateUtils.dateToDateString(newDate, "yyyy-MM-dd");
+                }
+
+                result.setNewData(newData);
+                result.setOldData(oldData);
+                result.setFieldAnnoName("������������");
+            }
+        }
+    }
+
 
 }

--
Gitblit v1.8.0