diff --git a/models/mgoParam.go b/models/mgoParam.go new file mode 100644 index 0000000..1d93795 --- /dev/null +++ b/models/mgoParam.go @@ -0,0 +1,19 @@ +package models + +import ( + ruisUtil "github.com/mgr9525/go-ruisutil" + "gopkg.in/mgo.v2/bson" + "time" +) + +type MgoParam struct { + Id bson.ObjectId `bson:"_id"` + Key string + Title string + Value *map[string]interface{} + Times time.Time +} + +func (c *MgoParam) Map() *ruisUtil.Map { + return ruisUtil.NewMapo(c.Value) +} diff --git a/service/dao.go b/service/dao.go new file mode 100644 index 0000000..b0fc21d --- /dev/null +++ b/service/dao.go @@ -0,0 +1,8 @@ +package service + +import ( + "GoClouds/core/comm" + gocloud "github.com/mgr9525/go-cloud" +) + +var MgoParamDao = gocloud.NewDaoMgo(&comm.DbMongo, "Data", "param") diff --git a/service/mgoService/param.go b/service/mgoService/param.go new file mode 100644 index 0000000..1cd63da --- /dev/null +++ b/service/mgoService/param.go @@ -0,0 +1,70 @@ +package mgoService + +import ( + "GoClouds/models" + "GoClouds/service" + "gopkg.in/mgo.v2/bson" + "time" +) + +func FindParam(id string) *models.MgoParam { + if len(id) <= 0 { + return nil + } + ses := service.MgoParamDao.NewSession() + defer ses.Close() + + e := new(models.MgoParam) + err := ses.C().FindId(bson.ObjectIdHex(id)).One(e) + if err != nil { + return nil + } + return e +} +func GetParam(key string) *models.MgoParam { + if len(key) <= 0 { + return nil + } + ses := service.MgoParamDao.NewSession() + defer ses.Close() + + e := new(models.MgoParam) + err := ses.C().Find(bson.M{"key": key}).One(e) + if err != nil { + return nil + } + return e +} +func SetParam(key string, val *map[string]interface{}, tits ...string) bool { + if len(key) <= 0 { + return false + } + isup := true + e := GetParam(key) + if e == nil { + isup = false + e = new(models.MgoParam) + e.Id = bson.NewObjectId() + e.Key = key + e.Times = time.Now() + } + + e.Value = val + if len(tits) > 0 { + e.Title = tits[0] + } + + var err error + ses := service.MgoParamDao.NewSession() + defer ses.Close() + if isup { + err = ses.C().UpdateId(e.Id, e) + } else { + err = ses.C().Insert(e) + } + if err != nil { + println("err:" + err.Error()) + return false + } + return true +}