diff --git a/ballcat-admin/ballcat-admin-core/pom.xml b/ballcat-admin/ballcat-admin-core/pom.xml
index 2a07b170..fd39c754 100644
--- a/ballcat-admin/ballcat-admin-core/pom.xml
+++ b/ballcat-admin/ballcat-admin-core/pom.xml
@@ -39,6 +39,10 @@
org.springframework.security.oauth
spring-security-oauth2
+
+ com.hccake
+ ballcat-spring-boot-starter-mail
+
\ No newline at end of file
diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/constants/NotifyChannel.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/constants/NotifyChannel.java
new file mode 100644
index 00000000..3ec3041b
--- /dev/null
+++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/constants/NotifyChannel.java
@@ -0,0 +1,24 @@
+package com.hccake.ballcat.admin.constants;
+
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
+
+/**
+ * 通知接收方式
+ * @author Hccake 2020/12/21
+ * @version 1.0
+ */
+@Getter
+@RequiredArgsConstructor
+public enum NotifyChannel {
+
+ // 站内
+ STATION(1),
+ // 短信
+ SMS(2),
+ // 邮件
+ MAIL(3);
+
+ private final int value;
+
+}
diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/notify/listener/AnnouncementEventListener.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/notify/listener/AnnouncementEventListener.java
index a1672492..afc0ac14 100644
--- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/notify/listener/AnnouncementEventListener.java
+++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/notify/listener/AnnouncementEventListener.java
@@ -1,28 +1,46 @@
package com.hccake.ballcat.admin.modules.notify.listener;
import com.hccake.ballcat.admin.modules.notify.event.AnnouncementPublishEvent;
+import com.hccake.ballcat.admin.modules.notify.model.entity.Announcement;
+import com.hccake.ballcat.admin.modules.notify.push.NotifyPushRunner;
+import com.hccake.ballcat.admin.modules.sys.model.entity.SysUser;
import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;
+import java.util.ArrayList;
+import java.util.List;
+
/**
* 公告事件监听器
*
* @author Hccake 2020/12/17
* @version 1.0
*/
+@Slf4j
@Component
@RequiredArgsConstructor
public class AnnouncementEventListener {
+ private final NotifyPushRunner notifyPusherRunner;
+
/**
- * 公告发布事件处理
+ * // TODO 同步处理,失败回滚 公告发布事件处理
* @param event the AnnouncementPublishEvent
*/
@EventListener(AnnouncementPublishEvent.class)
public void onAnnouncementPublishEvent(AnnouncementPublishEvent event) {
- // TODO 公告通知
- System.out.println(event.getAnnouncement());
+ Announcement announcement = event.getAnnouncement();
+
+ // TODO 根据接收人条件筛选
+ List userList = new ArrayList<>();
+ SysUser sysUser = new SysUser();
+ sysUser.setEmail("chengbohua@foxmail.com");
+ userList.add(sysUser);
+
+ // 推送通知
+ notifyPusherRunner.run(announcement, userList, announcement.getReceiveMode());
}
}
diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/notify/model/entity/Announcement.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/notify/model/entity/Announcement.java
index 00da08fc..88955f52 100644
--- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/notify/model/entity/Announcement.java
+++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/notify/model/entity/Announcement.java
@@ -20,7 +20,7 @@ import java.util.List;
* @author hccake 2020-12-15 17:01:15
*/
@Data
-@TableName("notify_announcement")
+@TableName(value = "notify_announcement", autoResultMap = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "公告信息")
public class Announcement extends Model {
diff --git a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/notify/model/vo/AnnouncementVO.java b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/notify/model/vo/AnnouncementVO.java
index 9890412f..b700fa4e 100644
--- a/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/notify/model/vo/AnnouncementVO.java
+++ b/ballcat-admin/ballcat-admin-core/src/main/java/com/hccake/ballcat/admin/modules/notify/model/vo/AnnouncementVO.java
@@ -1,5 +1,7 @@
package com.hccake.ballcat.admin.modules.notify.model.vo;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -46,12 +48,14 @@ public class AnnouncementVO {
* 对应接收人筛选方式的条件信息,多个用逗号分割。如角色标识,组织ID,用户类型,用户ID等
*/
@ApiModelProperty(value = "对应接收人筛选方式的条件信息。如角色标识,组织ID,用户类型,用户ID等")
+ @TableField(typeHandler = JacksonTypeHandler.class)
private List