77 lines
1.9 KiB
Go
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
|
|
}
|