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 }