增加bark配置
This commit is contained in:
@@ -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 发送站内信
|
||||
|
||||
Reference in New Issue
Block a user