package data
import (
"errors"
"fmt"
"hongze/hongze_task/models/data_manage"
"hongze/hongze_task/utils"
"time"
)
//指标更新通知
func RefreshNotice() (err error) {
defer func() {
if err != nil {
fmt.Println("RefreshNotice Err:" + err.Error())
go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshNotice ErrMsg:"+err.Error(), utils.EmailSendToUsers)
}
}()
var condition string
var pars []interface{}
items, err := data_manage.GetEdbInfoByCondition(condition, pars, 1)
if err != nil {
return errors.New("GetEdbInfoByCondition:" + err.Error())
}
//日度
dayDiv := `
日度指标,超过3天未更新:
`
dayTable := `
指标编码 |
指标名称 |
指标来源 |
频度 |
指标数据最后日期 |
指标数据更新日期 |
`
dayTableBody := ``
dayDate := time.Now().AddDate(0, 0, -3)
for _, v := range items {
if v.Frequency == "日度" && v.EndDate.Before(dayDate) {
dayTableBody += getTableTr(v)
}
}
dayTable += dayTableBody
dayTable += `
`
noticeSendBody := dayDiv + dayTable
noticeSendBody += `
`
//周度
weekDiv := `周度指标,超过7天未更新:
`
weekTable := `
指标编码 |
指标名称 |
指标来源 |
频度 |
指标数据最后日期 |
指标数据更新日期 |
`
weekTableBody := ``
weekDate := time.Now().AddDate(0, 0, -7)
for _, v := range items {
if v.Frequency == "周度" && v.EndDate.Before(weekDate) {
weekTableBody += getTableTr(v)
}
}
weekTable += weekTableBody
weekTable += `
`
noticeSendBody += weekDiv + weekTable
noticeSendBody += `
`
//月度
monthDiv := `月度指标,超过一个月未更新:
`
monthTable := `
指标编码 |
指标名称 |
指标来源 |
频度 |
指标数据最后日期 |
指标数据更新日期 |
`
monthTableBody := ``
monthDate := time.Now().AddDate(0, -1, 0)
for _, v := range items {
if v.Frequency == "月度" && v.EndDate.Before(monthDate) {
monthTableBody += getTableTr(v)
}
}
monthTable += monthTableBody
monthTable += `
`
noticeSendBody += monthDiv + monthTable
noticeSendBody += `
`
//所有指标
allDiv := `
`
allDiv = `当前所有指标,按数据日期升序排列:
`
allTable := `
指标编码 |
指标名称 |
指标来源 |
频度 |
指标数据最后日期 |
指标数据更新日期 |
`
allTableBody := ``
for _, v := range items {
allTableBody += getTableTr(v)
}
allTable += allTableBody
allTable += `
`
noticeSendBody += allDiv + allTable
utils.SendEmailByHongze("指标更新情况通知", noticeSendBody, utils.RefreshEdbInfoEmailSendToUsers, "", "")
return
}
func getTableTr(item *data_manage.EdbInfoList) string {
if item != nil {
trHtml := `
` + item.EdbCode + ` |
` + item.EdbName + ` |
` + item.SourceName + ` |
` + item.Frequency + ` |
` + item.EndDate.Format(utils.FormatDate) + ` |
` + item.ModifyTime + ` |
`
return trHtml
} else {
return ""
}
}