You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
1.5 KiB
Go
84 lines
1.5 KiB
Go
package common
|
|
|
|
import (
|
|
"autogo/dbsql"
|
|
"autogo/models"
|
|
"errors"
|
|
"time"
|
|
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
var DingTime = make(map[int]time.Time)
|
|
|
|
var NotifyList []models.Notify
|
|
|
|
func InitNotifyInfos() error {
|
|
var list []models.Notify
|
|
|
|
db, err := dbsql.GetConn(dbsql.DSN)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
defer dbsql.Close(db)
|
|
|
|
db.Find(&list)
|
|
if db.Error != nil {
|
|
return db.Error
|
|
}
|
|
|
|
NotifyList = list
|
|
|
|
return nil
|
|
}
|
|
|
|
// 根据section和name获取通知信息
|
|
func GetNotifyInfo(section, name string) (models.Notify, error) {
|
|
var n models.Notify
|
|
|
|
db, err := dbsql.GetConn(dbsql.DSN)
|
|
if err != nil {
|
|
return n, err
|
|
}
|
|
defer dbsql.Close(db)
|
|
|
|
db.Where("section = ? AND name = ?", section, name).Last(&n)
|
|
if db.Error != nil {
|
|
return n, db.Error
|
|
}
|
|
if n.ID < 0 {
|
|
return n, errors.New("没有找到notify配置")
|
|
}
|
|
|
|
return n, nil
|
|
}
|
|
|
|
// 创建通知
|
|
func createNotify(db *gorm.DB, n *models.Notify) error {
|
|
return db.Create(n).Error
|
|
}
|
|
|
|
// 查询所有通知
|
|
func getAllNotifys(db *gorm.DB) ([]models.Notify, error) {
|
|
var ns []models.Notify
|
|
err := db.Find(&ns).Error
|
|
return ns, err
|
|
}
|
|
|
|
// 根据 ID 查询通知
|
|
func getNotifyByID(db *gorm.DB, id uint) (models.Notify, error) {
|
|
var n models.Notify
|
|
err := db.First(&n, id).Error
|
|
return n, err
|
|
}
|
|
|
|
// 更新通知
|
|
func updateNotify(db *gorm.DB, n *models.Notify) error {
|
|
return db.Updates(n).Error
|
|
}
|
|
|
|
// 删除通知
|
|
func deleteNotify(db *gorm.DB, id uint) error {
|
|
return db.Delete(&models.Notify{}, id).Error
|
|
}
|