一、消息通知
1.概述
消息通知是單獨(dú)的一個(gè)模塊,包含通知渠道、通知模板、通知日志三個(gè)菜單,模板通過(guò)關(guān)聯(lián)業(yè)務(wù)編碼,可靈活的對(duì)接其他模塊業(yè)務(wù);
2.技術(shù)實(shí)現(xiàn)
短信、郵箱發(fā)送使用第三方開源技術(shù)首頁(yè) | SMS4J文檔,其他渠道發(fā)送使用官方api文檔。

3.各個(gè)平臺(tái)申請(qǐng)流程:
a. 阿里云短信、語(yǔ)音



b. 騰訊云短信、語(yǔ)音
注意
騰訊云最新的通知、營(yíng)銷短信模版已不支持添加變量,如需自定義變量請(qǐng)申請(qǐng)阿里云短信



c. 微信小程序訂閱模板申請(qǐng),參考三方登錄先申請(qǐng)微信小程序,然后登錄微信公眾平臺(tái)微信小程序申請(qǐng)訂閱消息
注意
微信小程序通知必須要配置模版并啟用,然后用戶需要在小程序告警-待處理頁(yè)面點(diǎn)擊處理,然后訂閱消息,可以自己調(diào)整訂閱位置


d. 企業(yè)微信應(yīng)用信息、群機(jī)器人
注意
目前僅支持在企業(yè)內(nèi)部創(chuàng)建使用,還未測(cè)試過(guò)第三方




注意
企業(yè)微信應(yīng)用消息必須要驗(yàn)證URL通過(guò)后才可發(fā)送通知,在下面的代碼改為自己的信息,然后部署項(xiàng)目驗(yàn)證,驗(yàn)證成功后再配置可信域名、可信IP就可以了

e. 微信服務(wù)號(hào)通知
實(shí)現(xiàn)前提:系統(tǒng)已經(jīng)有微信綁定功能,并且微信服務(wù)號(hào)需和微信網(wǎng)站應(yīng)用、小程序、移動(dòng)應(yīng)用綁定在同一個(gè)微信開放平臺(tái)賬號(hào)下,不同應(yīng)用端通過(guò)unionId交互;
注意
- 請(qǐng)申請(qǐng)服務(wù)號(hào),只有服務(wù)號(hào)支持模板消息功能
- 在微信開放平臺(tái)申請(qǐng)公眾號(hào),然后去微信公眾平臺(tái)綁定服務(wù)號(hào);
- 在系統(tǒng)三方登錄配置微信公眾號(hào)信息;
- 驗(yàn)證url,驗(yàn)證通過(guò)后配置IP白名單;
- 功能上線后已關(guān)注公眾號(hào)的微信需重新關(guān)注;



f. 釘釘消息通知、群機(jī)器人
注意
目前僅支持在企業(yè)內(nèi)部創(chuàng)建使用,還未測(cè)試過(guò)第三方



注意
需要在機(jī)器人設(shè)置、安全設(shè)置里修改IP地址段,一般為后端服務(wù)器部署地址

g. MQTT網(wǎng)頁(yè)通知
注意
推送主題是/notify/alert/web/push/${用戶id},此通知方式不會(huì)記錄通知日志,在設(shè)備詳情-告警用戶配置需要通知的用戶

二、通知渠道
1. 概述
通知渠道配置主要用于對(duì)接第三方渠道服務(wù)商的連接參數(shù),一個(gè)渠道可配多個(gè)通知模版。
2. 定義
渠道、服務(wù)商來(lái)源于字典數(shù)據(jù),服務(wù)商需嚴(yán)格按照已有字典類型格式配置:

3. 差異
不同渠道服務(wù)商配置參數(shù)有差異,可查看該枚舉類NotifyChannelProviderEnum,可自行調(diào)整。配置參數(shù)來(lái)源方法com.fastbee.common.enums.NotifyChannelProviderEnum#getConfigContent
注意
務(wù)必保證屬性(attribute)參數(shù)名和各渠道對(duì)應(yīng)配置類里的屬性名一致

三、通知模版
1. 概述
通知模版主要配置模版參數(shù),模板歸屬于通知渠道(配置模板時(shí)需選擇對(duì)應(yīng)已配好的通知渠道賬號(hào)),同時(shí)也要選擇相應(yīng)的業(yè)務(wù)編碼,配好后在列表里啟用;
2. 差異
不同渠道模版參數(shù)有差異,可查看該枚舉類NotifyChannelProviderEnum,可自行調(diào)整。配置參數(shù)來(lái)源方法com.fastbee.common.enums.NotifyChannelProviderEnum#getMsgParams
注意
務(wù)必保證屬性(attribute)參數(shù)名和各渠道對(duì)應(yīng)配置類里的屬性名一致

3. 發(fā)送賬號(hào)
所有模版發(fā)送賬號(hào)統(tǒng)一使用sendAccount字段保存,多個(gè)使用‘,’分隔
4. 內(nèi)容變量
所有模版正文內(nèi)容統(tǒng)一使用content字段保存,目前只支持content字段內(nèi)容里存在變量。變量符號(hào):微信小程序使用符號(hào) ,騰訊云短信、語(yǔ)音使用符號(hào) {},郵箱使用符號(hào) #{},其余使用 ${} 表示
注意
需要把第三方申請(qǐng)的模版內(nèi)容原樣復(fù)制過(guò)來(lái)(方便記錄完整的日志內(nèi)容),例如:
- 微信小程序訂閱模板內(nèi)容復(fù)制

- 短信語(yǔ)音模板內(nèi)容復(fù)制

四、通知日志
概述:記錄所有通知模版發(fā)送的日志,包括發(fā)送內(nèi)容、賬號(hào)、返回內(nèi)容;

五、業(yè)務(wù)對(duì)接
1. 概述
唯一啟用模版原則:短信、語(yǔ)音、郵箱以業(yè)務(wù)編碼+渠道保證唯一啟用,微信、釘釘以業(yè)務(wù)編碼+渠道+服務(wù)商保證唯一啟用。
2. 對(duì)接
已對(duì)接設(shè)備告警,短信登錄驗(yàn)證碼業(yè)務(wù)。如需添加業(yè)務(wù),可同時(shí)在字典數(shù)據(jù)通知業(yè)務(wù)編碼和通知業(yè)務(wù)枚舉類NotifyServiceCodeEnum里自行添加。

3. 測(cè)試
在配置好模版后,可點(diǎn)擊測(cè)試按鈕,檢測(cè)是否能發(fā)送成功。

4. 發(fā)送服務(wù)類
主要對(duì)接不同渠道服務(wù)商的發(fā)送

5. 業(yè)務(wù)通知
主要對(duì)接業(yè)務(wù)發(fā)送,有新業(yè)務(wù)可寫在這。

提示
- 已統(tǒng)一發(fā)送方法,com.fastbee.notify.core.service.NotifySendService#notifySend,可直接調(diào)用
- 已統(tǒng)一查詢啟用模版方法,com.fastbee.notify.core.service.NotifySendService#selectOnlyEnable,可直接調(diào)用
- 如需加業(yè)務(wù)通知,只需自己組裝一下內(nèi)容變量和發(fā)送賬號(hào)即可,參考統(tǒng)一發(fā)送方法入?yún)㈩恈om.fastbee.notify.vo.NotifyVO
注意
在對(duì)接其他業(yè)務(wù)時(shí),務(wù)必保證模版是啟用的狀態(tài),否則會(huì)發(fā)送失敗。
設(shè)備告警業(yè)務(wù)的通知模板,短信、語(yǔ)音、微信小程序會(huì)獲取當(dāng)前設(shè)備配置的告警用戶+模板配置的發(fā)送賬號(hào)通知,其余需要在模板里面配置發(fā)送賬號(hào)。
支持多個(gè)賬號(hào)發(fā)送,微信小程序使用系統(tǒng)用戶id(用戶需要訂閱模版,目前只需要配置了設(shè)備告警-微信小程序通知模板,并啟用,然后在微信小程序告警頁(yè)面訂閱就行),企業(yè)微信應(yīng)用消息使用企業(yè)通訊錄成員賬號(hào)名稱,釘釘工作通知使用企業(yè)內(nèi)部通訊錄成員員工UserID,均用英文逗號(hào)‘,’分隔
模版內(nèi)容存在變量的,需要把變量替換為真實(shí)的參數(shù)。目前已對(duì)接的業(yè)務(wù),模版變量是按順序替換的,因此在申請(qǐng)模版內(nèi)容時(shí),變量的順序務(wù)必和我們演示站點(diǎn)模版變量順序一致。如果需要修改發(fā)送變量,可自行參考以下代碼調(diào)整:

六、后續(xù)更新
1、新增其他還未實(shí)現(xiàn)的渠道服務(wù)商通知配置;
2、新增其他通知業(yè)務(wù);
3、考慮接入mq