### 使用Spring Boot实现OA通知公告模块
使用Spring Boot框架实现一个支持多种形式公告发布、设置发布时间和有效期,以及公告发布后推送通知的模块。
#### 项目结构
结构组织项目:
```
OA_Notification_Module/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── oamodule/
│ │ │ ├── controller/
│ │ │ │ └── AnnouncementController.java
│ │ │ ├── model/
│ │ │ │ └── Announcement.java
│ │ │ ├── repository/
│ │ │ │ └── AnnouncementRepository.java
│ │ │ ├── service/
│ │ │ │ ├── AnnouncementService.java
│ │ │ │ └── NotificationService.java
│ │ │ └── OaNotificationModuleApplication.java
│ │ └── resources/
│ │ ├── application.properties
│ └── test/
│ └── java/
└── pom.xml
```
#### 1. `Announcement` 模型类
```java
package com.example.oamodule.model;
import javax.persistence.Entity;
import javax.persistence.Id;
import java.time.LocalDateTime;
@Entity
public class Announcement {
@Id
private String id;
private String type; // TEXT, IMAGE, VIDEO
private String content;
private LocalDateTime publishTime;
private LocalDateTime expiryTime;
public Announcement() {}
public Announcement(String id, String type, String content, LocalDateTime publishTime, LocalDateTime expiryTime) {
this.id = id;
this.type = type;
this.content = content;
this.publishTime = publishTime;
this.expiryTime = expiryTime;
}
// Getters and Setters
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getType() {