| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 | 
							- package dbdata
 
- import (
 
- 	"encoding/json"
 
- 	"reflect"
 
- 	"xorm.io/xorm"
 
- )
 
- type SettingInstall struct {
 
- 	Installed bool `json:"installed"`
 
- }
 
- type SettingSmtp struct {
 
- 	Host       string `json:"host"`
 
- 	Port       int    `json:"port"`
 
- 	Username   string `json:"username"`
 
- 	Password   string `json:"password"`
 
- 	From       string `json:"from"`
 
- 	Encryption string `json:"encryption"`
 
- }
 
- type SettingAuditLog struct {
 
- 	AuditInterval int    `json:"audit_interval"`
 
- 	LifeDay       int    `json:"life_day"`
 
- 	ClearTime     string `json:"clear_time"`
 
- }
 
- type SettingOther struct {
 
- 	LinkAddr    string `json:"link_addr"`
 
- 	Banner      string `json:"banner"`
 
- 	Homeindex   string `json:"homeindex"`
 
- 	AccountMail string `json:"account_mail"`
 
- }
 
- func StructName(data interface{}) string {
 
- 	ref := reflect.ValueOf(data)
 
- 	s := &ref
 
- 	if s.Kind() == reflect.Ptr {
 
- 		e := s.Elem()
 
- 		s = &e
 
- 	}
 
- 	name := s.Type().Name()
 
- 	return name
 
- }
 
- func SettingSessAdd(sess *xorm.Session, data interface{}) error {
 
- 	name := StructName(data)
 
- 	v, _ := json.Marshal(data)
 
- 	s := &Setting{Name: name, Data: v}
 
- 	_, err := sess.InsertOne(s)
 
- 	return err
 
- }
 
- func SettingSet(data interface{}) error {
 
- 	name := StructName(data)
 
- 	v, _ := json.Marshal(data)
 
- 	s := &Setting{Data: v}
 
- 	err := Update("name", name, s)
 
- 	return err
 
- }
 
- func SettingGet(data interface{}) error {
 
- 	name := StructName(data)
 
- 	s := &Setting{Name: name}
 
- 	err := One("name", name, s)
 
- 	if err != nil {
 
- 		return err
 
- 	}
 
- 	err = json.Unmarshal(s.Data, data)
 
- 	return err
 
- }
 
- func SettingGetAuditLog() (SettingAuditLog, error) {
 
- 	data := SettingAuditLog{}
 
- 	err := SettingGet(&data)
 
- 	if err == nil {
 
- 		return data, err
 
- 	}
 
- 	if !CheckErrNotFound(err) {
 
- 		return data, err
 
- 	}
 
- 	sess := xdb.NewSession()
 
- 	defer sess.Close()
 
- 	auditLog := SettingGetAuditLogDefault()
 
- 	err = SettingSessAdd(sess, auditLog)
 
- 	if err != nil {
 
- 		return data, err
 
- 	}
 
- 	return auditLog, nil
 
- }
 
- func SettingGetAuditLogDefault() SettingAuditLog {
 
- 	auditLog := SettingAuditLog{
 
- 		LifeDay:   0,
 
- 		ClearTime: "05:00",
 
- 	}
 
- 	return auditLog
 
- }
 
 
  |