package models import "vamicro/extend/util" var ( SysDefaultSetting = map[string]string { "sys_auto_clean": "0", "sys_update_notice" : "0", "sys_auto_update" : "0", "app_auto_clean" : "0", "app_update_notice": "0", "app_auto_update": "0", } ) func InitSysSettingData() { for k,v := range SysDefaultSetting { ss := SysSetting{} ss.Name = k ss.Value = v ss.SaveSetting(false) } } type SysSetting struct { Id string `gorm:"primary_key;column:id" json:"id"` Name string `gorm:"column:name" json:"name"` Value string `gorm:"column:value" json:"value"` } func (SysSetting) TableName() string { return "sys_setting" } func (ss *SysSetting) LoadSettingByName(name string) (err error) { if err := db.Table("sys_setting").Where("name=?", name).First(&ss).Error; err != nil { return err } return nil } func (ss *SysSetting) GetAllSetting() (settings []SysSetting, err error) { if err := db.Table("sys_setting").Scan(&settings).Error; err != nil { return nil, err } return settings, nil } func (ss *SysSetting) SaveSetting(up bool) (err error) { count := 0 result := db.Table(ss.TableName()).Where("name=?", ss.Name).Count(&count) if count > 0 && up { result := db.Table(ss.TableName()).Where("name=?", ss.Name).Update("value", ss.Value) if result.Error != nil { return result.Error } } else if 0 == count { if ss.Id == ""{ ss.Id = util.PseudoUuid() } result = db.Table(ss.TableName()).Create(&ss) if result.Error != nil { return result.Error } } return nil }