Files
web_hgdjc_server/web/service/srv_cfg/cfg.go
T
2026-11-07 10:44:09 +08:00

77 lines
1.9 KiB
Go

package srv_cfg
import (
"context"
"fmt"
"strings"
"videoweb/pub/common/srvdef"
"videoweb/pub/models/cfg"
"go.mongodb.org/mongo-driver/bson"
)
// GetSystemConfig 得到系统配置
func GetSystemConfig(ctx context.Context) (*cfg.SysCfg, *srvdef.SrvErr) {
filter := bson.M{
cfg.FN.SysCfg.Id: 1, //固定id
}
sysCfg, serr := cfg.FindOneSysCfg(ctx, filter)
if serr != nil {
return nil, serr
}
return sysCfg, nil
}
// emptyWatermark 水印字段为空时也写入空字符串,避免 omitempty 跳过导致旧值残留
func emptyWatermark(v *string) *string {
empty := ""
if v == nil || strings.TrimSpace(*v) == "" {
return &empty
}
s := strings.TrimSpace(*v)
return &s
}
func applyEmptyWatermarkFields(info *SysCfgUpdate) {
if info == nil {
return
}
info.WatermarkImage = emptyWatermark(info.WatermarkImage)
info.WatermarkMedia = emptyWatermark(info.WatermarkMedia)
info.WatermarkMediaTop = emptyWatermark(info.WatermarkMediaTop)
info.WatermarkMediaTopRight = emptyWatermark(info.WatermarkMediaTopRight)
info.WatermarkMediaBottomLeft = emptyWatermark(info.WatermarkMediaBottomLeft)
}
// UpdateSystemConfig 更新系统配置
func UpdateSystemConfig(ctx context.Context, info *SysCfgUpdate) *srvdef.SrvErr {
applyEmptyWatermarkFields(info)
filter := bson.M{
cfg.FN.SysCfg.Id: 1, //固定id
}
fmt.Println("filter", filter)
updateDoc := bson.M{"$set": info}
serr := cfg.UpdateOneSysCfg(ctx, filter, updateDoc)
if serr != nil {
return serr
}
return nil
}
// SetAppKey 单独更新媒资库 appKey,并刷新内存缓存。
func SetAppKey(ctx context.Context, appKey string) *srvdef.SrvErr {
appKey = strings.TrimSpace(appKey)
filter := bson.M{
cfg.FN.SysCfg.Id: 1,
}
updateDoc := bson.M{"$set": bson.M{
cfg.FN.SysCfg.AppKey: appKey,
}}
if serr := cfg.UpdateOneSysCfg(ctx, filter, updateDoc); serr != nil {
return serr
}
cfg.CacheAppKey(appKey)
return nil
}