mirror of https://github.com/bjdgyc/anylink.git
修改表结构
This commit is contained in:
parent
712f57940c
commit
88a3d35784
|
@ -1,8 +1,6 @@
|
||||||
package dbdata
|
package dbdata
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
|
||||||
|
|
||||||
"github.com/bjdgyc/anylink/base"
|
"github.com/bjdgyc/anylink/base"
|
||||||
_ "github.com/go-sql-driver/mysql"
|
_ "github.com/go-sql-driver/mysql"
|
||||||
_ "github.com/lib/pq"
|
_ "github.com/lib/pq"
|
||||||
|
@ -41,17 +39,24 @@ func initData() {
|
||||||
)
|
)
|
||||||
|
|
||||||
// 判断是否初次使用
|
// 判断是否初次使用
|
||||||
s := &Setting{}
|
install := &SettingInstall{}
|
||||||
err = One("name", InstallName, s)
|
err = SettingGet(install)
|
||||||
if err == nil && s.Data == InstallData {
|
|
||||||
|
if err == nil && install.Installed {
|
||||||
// 已经安装过
|
// 已经安装过
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 发生错误
|
||||||
|
if err != ErrNotFound {
|
||||||
|
base.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
err = addInitData()
|
err = addInitData()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
base.Fatal(err)
|
base.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func addInitData() error {
|
func addInitData() error {
|
||||||
|
@ -74,9 +79,7 @@ func addInitData() error {
|
||||||
From: "vpn@xx.com",
|
From: "vpn@xx.com",
|
||||||
Encryption: "None",
|
Encryption: "None",
|
||||||
}
|
}
|
||||||
v, _ := json.Marshal(smtp)
|
err = SettingSessAdd(sess, smtp)
|
||||||
s := &Setting{Name: StructName(smtp), Data: string(v)}
|
|
||||||
_, err = sess.InsertOne(s)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -87,16 +90,14 @@ func addInitData() error {
|
||||||
Banner: "您已接入公司网络,请按照公司规定使用。\n请勿进行非工作下载及视频行为!",
|
Banner: "您已接入公司网络,请按照公司规定使用。\n请勿进行非工作下载及视频行为!",
|
||||||
AccountMail: accountMail,
|
AccountMail: accountMail,
|
||||||
}
|
}
|
||||||
v, _ = json.Marshal(other)
|
err = SettingSessAdd(sess, other)
|
||||||
s = &Setting{Name: StructName(other), Data: string(v)}
|
|
||||||
_, err = sess.InsertOne(s)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Install
|
// Install
|
||||||
install := &Setting{Name: InstallName, Data: InstallData}
|
install := &SettingInstall{Installed: true}
|
||||||
_, err = sess.InsertOne(install)
|
err = SettingSessAdd(sess, install)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,12 +3,12 @@ package dbdata
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"reflect"
|
"reflect"
|
||||||
|
"xorm.io/xorm"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
type SettingInstall struct {
|
||||||
InstallName = "Install"
|
Installed bool `json:"installed"`
|
||||||
InstallData = "OK"
|
}
|
||||||
)
|
|
||||||
|
|
||||||
type SettingSmtp struct {
|
type SettingSmtp struct {
|
||||||
Host string `json:"host"`
|
Host string `json:"host"`
|
||||||
|
@ -36,29 +36,30 @@ func StructName(data interface{}) string {
|
||||||
return name
|
return name
|
||||||
}
|
}
|
||||||
|
|
||||||
func SettingAdd(data interface{}) error {
|
func SettingSessAdd(sess *xorm.Session, data interface{}) error {
|
||||||
name := StructName(data)
|
name := StructName(data)
|
||||||
v, _ := json.Marshal(data)
|
v, _ := json.Marshal(data)
|
||||||
s := Setting{Name: name, Data: string(v)}
|
s := &Setting{Name: name, Data: v}
|
||||||
err := Add(&s)
|
_, err := sess.InsertOne(s)
|
||||||
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func SettingSet(data interface{}) error {
|
func SettingSet(data interface{}) error {
|
||||||
name := StructName(data)
|
name := StructName(data)
|
||||||
v, _ := json.Marshal(data)
|
v, _ := json.Marshal(data)
|
||||||
s := Setting{Data: string(v)}
|
s := &Setting{Data: v}
|
||||||
err := Update("name", name, &s)
|
err := Update("name", name, s)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func SettingGet(data interface{}) error {
|
func SettingGet(data interface{}) error {
|
||||||
name := StructName(data)
|
name := StructName(data)
|
||||||
s := Setting{Name: name}
|
s := &Setting{Name: name}
|
||||||
err := One("name", name, &s)
|
err := One("name", name, s)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
err = json.Unmarshal([]byte(s.Data), data)
|
err = json.Unmarshal(s.Data, data)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,13 @@
|
||||||
package dbdata
|
package dbdata
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"encoding/json"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Group struct {
|
type Group struct {
|
||||||
Id int `json:"id" xorm:"pk autoincr not null"`
|
Id int `json:"id" xorm:"pk autoincr not null"`
|
||||||
Name string `json:"name" xorm:"varchar(60) not null unique(inx_name)"`
|
Name string `json:"name" xorm:"varchar(60) not null unique"`
|
||||||
Note string `json:"note" xorm:"varchar(255)"`
|
Note string `json:"note" xorm:"varchar(255)"`
|
||||||
AllowLan bool `json:"allow_lan" xorm:"Bool"`
|
AllowLan bool `json:"allow_lan" xorm:"Bool"`
|
||||||
ClientDns []ValData `json:"client_dns" xorm:"Text"`
|
ClientDns []ValData `json:"client_dns" xorm:"Text"`
|
||||||
|
@ -21,7 +22,7 @@ type Group struct {
|
||||||
|
|
||||||
type User struct {
|
type User struct {
|
||||||
Id int `json:"id" xorm:"pk autoincr not null"`
|
Id int `json:"id" xorm:"pk autoincr not null"`
|
||||||
Username string `json:"username" xorm:"varchar(60) not null unique(inx_username)"`
|
Username string `json:"username" xorm:"varchar(60) not null unique"`
|
||||||
Nickname string `json:"nickname" xorm:"varchar(255)"`
|
Nickname string `json:"nickname" xorm:"varchar(255)"`
|
||||||
Email string `json:"email" xorm:"varchar(255)"`
|
Email string `json:"email" xorm:"varchar(255)"`
|
||||||
// Password string `json:"password"`
|
// Password string `json:"password"`
|
||||||
|
@ -37,8 +38,8 @@ type User struct {
|
||||||
|
|
||||||
type IpMap struct {
|
type IpMap struct {
|
||||||
Id int `json:"id" xorm:"pk autoincr not null"`
|
Id int `json:"id" xorm:"pk autoincr not null"`
|
||||||
IpAddr string `json:"ip_addr" xorm:"varchar(32) not null unique(inx_ip_addr)"`
|
IpAddr string `json:"ip_addr" xorm:"varchar(32) not null unique"`
|
||||||
MacAddr string `json:"mac_addr" xorm:"varchar(32) not null unique(inx_mac_addr)"`
|
MacAddr string `json:"mac_addr" xorm:"varchar(32) not null unique"`
|
||||||
Username string `json:"username" xorm:"varchar(60)"`
|
Username string `json:"username" xorm:"varchar(60)"`
|
||||||
Keep bool `json:"keep" xorm:"Bool"` // 保留 ip-mac 绑定
|
Keep bool `json:"keep" xorm:"Bool"` // 保留 ip-mac 绑定
|
||||||
KeepTime time.Time `json:"keep_time" xorm:"DateTime"`
|
KeepTime time.Time `json:"keep_time" xorm:"DateTime"`
|
||||||
|
@ -48,8 +49,8 @@ type IpMap struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
type Setting struct {
|
type Setting struct {
|
||||||
Id int `json:"id" xorm:"pk autoincr not null"`
|
Id int `json:"id" xorm:"pk autoincr not null"`
|
||||||
Name string `json:"name" xorm:"varchar(60) not null unique(inx_name)"`
|
Name string `json:"name" xorm:"varchar(60) not null unique"`
|
||||||
Data string `json:"data" xorm:"Text"`
|
Data json.RawMessage `json:"data" xorm:"Text"`
|
||||||
UpdatedAt time.Time `json:"updated_at" xorm:"DateTime updated"`
|
UpdatedAt time.Time `json:"updated_at" xorm:"DateTime updated"`
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue