diff --git a/business-css/src/main/java/com/yfd/business/css/controller/EventController.java b/business-css/src/main/java/com/yfd/business/css/controller/EventController.java index 1b10ea7..30e62ee 100644 --- a/business-css/src/main/java/com/yfd/business/css/controller/EventController.java +++ b/business-css/src/main/java/com/yfd/business/css/controller/EventController.java @@ -8,6 +8,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import jakarta.annotation.Resource; import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.transaction.annotation.Transactional; import org.springframework.security.core.Authentication; import org.springframework.security.authentication.AnonymousAuthenticationToken; @@ -41,6 +42,7 @@ public class EventController { */ @PostMapping public ResponseEntity> addEvent(@RequestBody Event event) { + event.setModifier(currentUsername()); eventService.save(event); Event savedEvent = event; return ResponseEntity.ok(Map.of( @@ -61,9 +63,48 @@ public class EventController { @PutMapping public boolean update(@RequestBody Event event) { event.setModifier(currentUsername()); + event.setUpdatedAt(LocalDateTime.now()); return eventService.updateById(event); } + /** + * 批量新增或修改事件 + * @param events + * @return + */ + @PostMapping("/batchSave") + @Transactional + public ResponseEntity> batchSaveOrUpdateEvents(@RequestBody List events) { + String currentUser = currentUsername(); + LocalDateTime now = LocalDateTime.now(); + + List savedEvents = new ArrayList<>(); + + for (Event event : events) { + if (event.getEventId() != null && eventService.getById(event.getEventId()) != null) { + // 更新逻辑 + event.setModifier(currentUser); + event.setUpdatedAt(now); + eventService.updateById(event); + savedEvents.add(event); + } else { + // 新增逻辑 + event.setCreatedAt(now); + event.setModifier(currentUser); + event.setUpdatedAt(now); + eventService.save(event); + savedEvents.add(event); + } + } + + return ResponseEntity.ok(Map.of( + "code", 0, + "msg", "批量保存或更新成功", + "data", savedEvents + )); + } + + /** * 修改 Event 的 attr_changes */ diff --git a/business-css/src/main/java/com/yfd/business/css/domain/Event.java b/business-css/src/main/java/com/yfd/business/css/domain/Event.java index b118745..2985cd7 100644 --- a/business-css/src/main/java/com/yfd/business/css/domain/Event.java +++ b/business-css/src/main/java/com/yfd/business/css/domain/Event.java @@ -36,6 +36,9 @@ public class Event implements Serializable { @TableField("created_at") private LocalDateTime createdAt; + @TableField("updated_at") + private LocalDateTime updatedAt; + @TableField("modifier") private String modifier; }