go_dreamfactory/modules/tools/modelGlobal.go
2024-03-12 15:32:35 +08:00

53 lines
1.8 KiB
Go

package tools
import (
"go_dreamfactory/comm"
"go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/log"
"go_dreamfactory/lego/sys/mgo"
"go_dreamfactory/modules"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo/options"
)
type modelGlobal struct {
modules.MCompModel
module *Tools
}
func (this *modelGlobal) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
err = this.MCompModel.Init(service, module, comp, options)
this.TableName = comm.TableGlobal
this.module = module.(*Tools)
return
}
// 查询全局配置
func (this *modelGlobal) GetGlobalData(key string, v interface{}) (err error) {
if err = this.DBModel.DB.FindOne(core.SqlTable(this.TableName), bson.M{"_id": key}).Decode(v); err != nil && err != mgo.MongodbNil {
this.module.Error("GetGlobalData err", log.Field{Key: "key", Value: key}, log.Field{Key: "err", Value: err.Error()})
return
}
err = nil
return
}
//查询更新列表
func (this *modelGlobal) GetAndUpdateGlobalData(key string, v interface{}, update interface{}) (err error) {
if err = this.DBModel.DB.FindOneAndUpdate(core.SqlTable(this.TableName), bson.M{"_id": key}, update).Decode(v); err != nil && err != mgo.MongodbNil {
this.module.Error("GetAndUpdateGlobalData err", log.Field{Key: "key", Value: key}, log.Field{Key: "err", Value: err.Error()})
return
}
err = nil
return
}
// 更新全局配置
func (this *modelGlobal) UpdateGlobalData(key string, v interface{}) (err error) {
if _, err = this.DBModel.DB.UpdateOne(core.SqlTable(this.TableName), bson.M{"_id": key}, bson.M{"$set": v}, options.Update().SetUpsert(true)); err != nil {
//this.module.Error("GetGlobalData err", log.Field{Key: "key", Value: key}, log.Field{Key: "err", Value: err.Error()})
}
return
}