Browse Source

优化验证

zhou-hao 5 years ago
parent
commit
ed637eda1c

+ 19 - 4
hsweb-commons/hsweb-commons-crud/src/main/java/org/hswebframework/web/crud/events/ValidateEventListener.java

@@ -9,17 +9,32 @@ import org.hswebframework.web.api.crud.entity.Entity;
 import org.hswebframework.web.validator.CreateGroup;
 import org.hswebframework.web.validator.UpdateGroup;
 
+import java.util.List;
+
 public class ValidateEventListener implements EventListener {
 
 
     @Override
+    @SuppressWarnings("all")
     public void onEvent(EventType type, EventContext context) {
         if (type == MappingEventTypes.insert_before) {
 
-            context.get(MappingContextKeys.instance)
-                    .filter(Entity.class::isInstance)
-                    .map(Entity.class::cast)
-                    .ifPresent(entity -> entity.tryValidate(CreateGroup.class));
+            boolean single= context.get(MappingContextKeys.type).map("single"::equals).orElse(false);
+            if(single){
+                context.get(MappingContextKeys.instance)
+                        .filter(Entity.class::isInstance)
+                        .map(Entity.class::cast)
+                        .ifPresent(entity -> entity.tryValidate(CreateGroup.class));
+            }else{
+                context.get(MappingContextKeys.instance)
+                        .filter(List.class::isInstance)
+                        .map(List.class::cast)
+                        .ifPresent(lst ->lst.stream()
+                                .filter(Entity.class::isInstance)
+                                .map(Entity.class::cast)
+                                .forEach(e->((Entity) e).tryValidate(CreateGroup.class))
+                        );
+            }
 
         } else if (type == MappingEventTypes.update_before) {
             context.get(MappingContextKeys.instance)