Browse Source

优化审计信息

zhouhao 6 years ago
parent
commit
c9cf7a855c

+ 3 - 1
hsweb-commons/hsweb-commons-entity/src/main/java/org/hswebframework/web/commons/entity/events/EntityCreatedEvent.java

@@ -7,7 +7,9 @@ import java.io.Serializable;
 
 @AllArgsConstructor
 @Getter
-public class EntityCreatedEvent<E> implements Serializable{
+public class EntityCreatedEvent<E> implements Serializable {
 
     private E entity;
+
+    private Class<E> entityType;
 }

+ 2 - 0
hsweb-commons/hsweb-commons-entity/src/main/java/org/hswebframework/web/commons/entity/events/EntityModifyEvent.java

@@ -15,4 +15,6 @@ public class EntityModifyEvent<E> implements Serializable{
 
     private E after;
 
+    private Class<E> entityType;
+
 }

+ 3 - 3
hsweb-commons/hsweb-commons-service/hsweb-commons-service-simple/src/main/java/org/hswebframework/web/service/GenericEntityService.java

@@ -120,10 +120,10 @@ public abstract class GenericEntityService<E extends GenericEntity<PK>, PK>
         entity.setId(pk);
 
         tryValidate(entity, UpdateGroup.class);
-        //实现了 RecordModifierEntity接口的实体,将推送 EntityModifyEvent 事件.
+        //尝试推送 EntityModifyEvent 事件.
         if (eventPublisher != null && pushModifyEvent()) {
             E old = selectByPk(pk);
-            eventPublisher.publishEvent(new GenericsPayloadApplicationEvent<>(this, new EntityModifyEvent<>(old, entity), getEntityType()));
+            eventPublisher.publishEvent(new GenericsPayloadApplicationEvent<>(this, new EntityModifyEvent<>(old, entity, getEntityType()), getEntityType()));
         }
         return createUpdate(entity)
                 //如果是RecordCreationEntity则不修改creator_id和creator_time
@@ -183,7 +183,7 @@ public abstract class GenericEntityService<E extends GenericEntity<PK>, PK>
         getDao().insert(entity);
 
         if (eventPublisher != null && pushCreatedEvent()) {
-            eventPublisher.publishEvent(new GenericsPayloadApplicationEvent<>(this, new EntityCreatedEvent<>(entity), getEntityType()));
+            eventPublisher.publishEvent(new GenericsPayloadApplicationEvent<>(this, new EntityCreatedEvent<>(entity, getEntityType()), getEntityType()));
         }
         return entity.getId();
     }

+ 1 - 0
hsweb-core/src/main/java/org/hswebframework/web/audit/Audit.java

@@ -26,5 +26,6 @@ public @interface Audit {
 
     //如果设置了审核权限,当进行审核或者回退的时候将进行权限验证.
     //如: permission:user:audit
+    //role:admin
     String auditPermission() default "";
 }

+ 20 - 0
hsweb-core/src/main/java/org/hswebframework/web/audit/AuditFieldMeta.java

@@ -0,0 +1,20 @@
+package org.hswebframework.web.audit;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author zhouhao
+ * @since 3.0.7
+ */
+@Getter
+@Setter
+public class AuditFieldMeta {
+    private String field;
+
+    private String comment;
+
+    private String type;
+
+    private Strategy strategy;
+}

+ 28 - 0
hsweb-core/src/main/java/org/hswebframework/web/audit/AuditMeta.java

@@ -0,0 +1,28 @@
+package org.hswebframework.web.audit;
+
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+import java.util.function.Consumer;
+
+/**
+ * 审计信息注解,用于在修改更新数据的时候记录被修改的内容.
+ *
+ * @since 3.0.7
+ */
+@Getter
+@Setter
+public class AuditMeta {
+
+    private String type;
+
+    private String comment;
+
+    private List<AuditFieldMeta> fields;
+
+    public boolean isEmpty() {
+        return CollectionUtils.isEmpty(fields);
+    }
+}

+ 12 - 0
hsweb-core/src/main/java/org/hswebframework/web/audit/AuditMetaParser.java

@@ -0,0 +1,12 @@
+package org.hswebframework.web.audit;
+
+import java.util.Optional;
+
+/**
+ * @author zhouhao
+ * @since 3.0.7
+ */
+public interface AuditMetaParser {
+
+    Optional<AuditMeta> parse(Class<?> type);
+}