package db import ( "applet/app/db/model" "applet/app/md" "applet/app/utils/cache" "applet/app/utils/logx" "fmt" "xorm.io/xorm" ) type MasterListCfgDb struct { Db *xorm.Engine `json:"db"` } func (masterListCfgDb *MasterListCfgDb) Set() { // set方法 masterListCfgDb.Db = ZhimengDb } func (masterListCfgDb *MasterListCfgDb) MasterListCfgGetAll() (*[]model.MasterListCfg, error) { var cfgList []model.MasterListCfg if err := masterListCfgDb.Db.Cols("k,v,memo").Find(&cfgList); err != nil { return nil, logx.Error(err) } return &cfgList, nil } func (masterListCfgDb *MasterListCfgDb) MasterListCfgGetCron() (*[]model.MasterListCfg, error) { var cfgList []model.MasterListCfg if err := masterListCfgDb.Db.Where("`k` LIKE 'zhimeng_cron\\_%' AND v != ''").Cols("k,v,memo").Find(&cfgList); err != nil { return nil, logx.Error(err) } return &cfgList, nil } func (masterListCfgDb *MasterListCfgDb) MasterListCfgGetOneNoDataNoErr(key string) (*model.MasterListCfg, error) { var cfgList model.MasterListCfg has, err := masterListCfgDb.Db.Where("`k`=?", key).Get(&cfgList) if err != nil { return nil, logx.Error(err) } if !has { return nil, nil } return &cfgList, nil } func (masterListCfgDb *MasterListCfgDb) MasterListCfgGetOne(uid, key string) (*model.MasterListCfg, error) { var cfgList model.MasterListCfg has, err := masterListCfgDb.Db.Where("`k`=? and uid=?", key, uid).Get(&cfgList) if err != nil { return nil, logx.Error(err) } if has == false { cfgList = model.MasterListCfg{Uid: uid, K: key} masterListCfgDb.Db.InsertOne(&cfgList) } return &cfgList, nil } func (masterListCfgDb *MasterListCfgDb) MasterListCfgGetOneData(uid, key string) string { var cfgList model.MasterListCfg has, err := masterListCfgDb.Db.Where("`k`=? and uid=?", key, uid).Get(&cfgList) if err != nil { return "" } if has == false { cfgList = model.MasterListCfg{Uid: uid, K: key} masterListCfgDb.Db.InsertOne(&cfgList) } return cfgList.V } func (masterListCfgDb *MasterListCfgDb) MasterListCfgInsert(uid, key, val, memo string) bool { cfg := model.MasterListCfg{Uid: uid, K: key, V: val, Memo: memo} _, err := masterListCfgDb.Db.InsertOne(&cfg) if err != nil { logx.Error(err) return false } return true } func (masterListCfgDb *MasterListCfgDb) MasterListCfgUpdate(uid, key, val string) bool { masterListCfgDb.MasterListCfgGetOneData(uid, key) cfg := model.MasterListCfg{K: key, V: val} _, err := masterListCfgDb.Db.Where("`k`=? and uid=?", key, uid).Cols("v").Update(&cfg) if err != nil { logx.Error(err) return false } masterListCfgDb.MasterListCfgDel(key) return true } func (masterListCfgDb *MasterListCfgDb) MasterListCfgDel(HKey string) error { cacheKey := fmt.Sprintf(md.AppCfgCacheKey, HKey[0:1]) _, err := cache.HDel(cacheKey, HKey) if err != nil { return err } return nil } func MasterListCfgGetOneData(uid, key string) string { var cfgList model.MasterListCfg has, err := ZhimengDb.Where("`k`=? and uid=?", key, uid).Get(&cfgList) if err != nil { return "" } if has == false { cfgList = model.MasterListCfg{Uid: uid, K: key} ZhimengDb.InsertOne(&cfgList) } return cfgList.V } func MasterListCfgGetKeyAll(key string) *[]model.MasterListCfg { var cfgList []model.MasterListCfg err := ZhimengDb.Where("`k`=? ", key).Find(&cfgList) if err != nil { return nil } return &cfgList } func MasterListCfgSave(uid, key, val string) { var cfgList model.MasterListCfg has, err := ZhimengDb.Where("`k`=? and uid=?", key, uid).Get(&cfgList) if err != nil || has == false { return } cfgList.V = val ZhimengDb.Where("`k`=? and uid=?", key, uid).Update(&cfgList) return }