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 "" } }