Commit d1ae0183 authored by chenhan wang's avatar chenhan wang
Browse files

数据库部分修改

parent fd162b81
......@@ -3,7 +3,7 @@ package model
import (
//"fmt"
"time"
"math/rand"
// "math/rand"
"github.com/sirupsen/logrus"
"github.com/spf13/viper"
......@@ -26,7 +26,7 @@ func Init() {
if err != nil {
logrus.Fatal(err)
}
err = DB.AutoMigrate(&Url{},&Sid{})
err = DB.AutoMigrate(&Sid{},&Url{})
if err != nil {
logrus.Fatal(err)
}
......@@ -96,23 +96,25 @@ func Checkt(_Route string) {
//查找sessionid和url是否关联
func Find(sid string,_url string) bool {
var url Url
err1 := DB.First(&url, "Url1 = ?",_url).Error
var s Sid
err1 := DB.First(&s, "S = ?",sid).Error
//fmt.Println(url.Url1,url.ID,"\n")
if err1 != nil {
return false
}
var sid1 Sid
DB.Model(&url).Where("S = ?",sid).Association("User1").Find(&sid1)
if sid1.UrlID == 0 {
return false
var Urls []Url
DB.Model(&s).Association("Url1").Find(&Urls)
for _, value := range Urls {
if value.Url1 == _url {
return true
}
}
return true
return false
}
var letters = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789")
//随机生成字符串
/*//*随机生成字符串
func randStr(n int) string {
rand.Seed(time.Now().Unix())
b := make([]rune, n)
......@@ -120,11 +122,11 @@ func randStr(n int) string {
b[i] = letters[rand.Intn(len(letters))]
}
return string(b)
}
}*/
//新建用户
func Createuser(_User Users) {
_User.SessionId=randStr(8)
//_User.SessionId=randStr(8)
DB.Create(&_User)
}
......@@ -134,17 +136,19 @@ func Createlink(sid string , _passwd string , _url string) bool {
DB.First(&p, "Url1 = ?", _url)
if p.Passwd == _passwd {
var p1 Sid
var p2 Url
p1.S = sid
err := DB.First(&p2,"Url1 = ?",_url).Error
// fmt.Println("yes ",err)
if err != nil {
//fmt.Println("yes ")
p2.Url1 = _url
DB.Create(&p2)
}
DB.Model(&p2).Association("User1").Append(&p1)
return true
err := DB.First(&p1, "S = ?", sid).Error
if err !=nil {
sid1 := Sid{
S:sid,
Url1: []Url{
{ Url1: _url},
},
}
DB.Create(&sid1)
} else {
DB.Model(&p1).Association("Url1").Append(&Url{Url1:_url})
}
return true
}
return false
}
......@@ -17,16 +17,16 @@ type Content struct {
Url1 string
}
type Url struct {
type Sid struct {
gorm.Model
Url1 string
User1 []Sid
S string
Url1 []Url `gorm:"many2many:sid_urls;"`
}
type Sid struct
type Url struct
{
S string
UrlID uint
gorm.Model
Url1 string
}
type Users struct {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment