增加bark配置

This commit is contained in:
2026-06-17 23:49:19 +08:00
parent 22e0e75c35
commit 6ee1f26124
19 changed files with 784 additions and 260 deletions
+68 -28
View File
@@ -3,32 +3,36 @@ package services
import (
"context"
"fmt"
"strconv"
"time"
"github.com/beego/beego/v2/client/orm"
"server/models"
)
// GetSiteReminderConfig 获取站内信配置(只读首条记录,不存在则初始化默认值
// GetSiteReminderConfig 获取站内信配置(从 yz_platform_normal_setting 读取
func GetSiteReminderConfig() (models.SystemSiteReminder, error) {
var row models.SystemSiteReminder
err := models.Orm.QueryTable(new(models.SystemSiteReminder)).OrderBy("id").Limit(1).One(&row)
if err == orm.ErrNoRows {
// 默认配置
now := time.Now()
row = models.SystemSiteReminder{
RetentionDays: 30,
AutoRead: 0,
CreateTime: &now,
UpdateTime: &now,
}
_, err = models.Orm.Insert(&row)
if err != nil {
return row, err
}
return row, nil
retentionDaysStr := models.GetPlatformSettingValue("sitemsg_retention_days", "30")
autoReadStr := models.GetPlatformSettingValue("sitemsg_auto_read", "0")
retentionDays, _ := strconv.Atoi(retentionDaysStr)
if retentionDays <= 0 {
retentionDays = 30
}
return row, err
autoRead := int8(0)
if autoReadStr == "1" {
autoRead = 1
}
now := time.Now()
row := models.SystemSiteReminder{
ID: 1,
RetentionDays: retentionDays,
AutoRead: autoRead,
CreateTime: &now,
UpdateTime: &now,
}
return row, nil
}
// SaveSiteReminderConfig 保存/更新配置
@@ -36,17 +40,53 @@ func SaveSiteReminderConfig(retentionDays int, autoRead int8) error {
if retentionDays <= 0 {
retentionDays = 30
}
cfg, err := GetSiteReminderConfig()
if err != nil {
return err
}
now := time.Now()
cfg.RetentionDays = retentionDays
cfg.AutoRead = autoRead
cfg.UpdateTime = &now
_, err = models.Orm.Update(&cfg, "RetentionDays", "AutoRead", "UpdateTime")
return err
autoReadStr := "0"
if autoRead == 1 {
autoReadStr = "1"
}
settings := []struct {
code string
name string
value string
remark string
}{
{"sitemsg_retention_days", "站内信消息保留天数", strconv.Itoa(retentionDays), ""},
{"sitemsg_auto_read", "自动标记已读状态", autoReadStr, "0为关闭,1为开启"},
}
for _, item := range settings {
var setting models.PlatformNormalSetting
err := models.Orm.QueryTable(new(models.PlatformNormalSetting)).
Filter("code", item.code).
Filter("delete_time__isnull", true).
One(&setting)
if err == nil {
setting.Value = item.value
setting.Name = item.name
setting.Remark = item.remark
now := time.Now()
setting.UpdateTime = &now
_, err = models.Orm.Update(&setting, "Value", "Name", "Remark", "UpdateTime")
if err != nil {
return err
}
} else {
newSetting := models.PlatformNormalSetting{
Name: item.name,
Code: item.code,
Value: item.value,
Remark: item.remark,
CreateTime: time.Now(),
}
_, err = models.Orm.Insert(&newSetting)
if err != nil {
return err
}
}
}
return nil
}
// SendSiteReminder 发送站内信