Commit 6209decc authored by lytzjzxr's avatar lytzjzxr
Browse files

解决了issue5所提出的问题

parent 596074c7
...@@ -25,7 +25,7 @@ func Init() { ...@@ -25,7 +25,7 @@ func Init() {
if err != nil { if err != nil {
logrus.Fatal(err) logrus.Fatal(err)
} }
err = DB.AutoMigrate(&Sid{}, &Url{}) err = DB.AutoMigrate(&Rel{})
if err != nil { if err != nil {
logrus.Fatal(err) logrus.Fatal(err)
} }
...@@ -97,36 +97,23 @@ func Checkt(p Content) bool { ...@@ -97,36 +97,23 @@ func Checkt(p Content) bool {
} }
// 这个函数那边有可能需要 // 这个函数那边有可能需要
// 检查sid是否超 // 检查sid_url是否超时
func Checkt1(sid string) bool { //同时也可以查询sid,_url是否关联
var s Sid func Find(sid string,_url string) bool {
DB.First(&s, "S = ?", sid) var s Rel
err := DB.Where(&Rel{Sid: sid,Url: _url}).First(&s).Error
if err != nil {
return false
}
t := time.Now() t := time.Now()
if t.After(s.Time) { if t.After(s.Time) {
DB.Delete(&s)
return false return false
} else { } else {
return true return true
} }
} }
// 查找sessionid和url是否关联
func Find(sid string, _url string) bool {
var s Sid
err1 := DB.First(&s, "S = ?", sid).Error
//fmt.Println(url.Url1,url.ID,"\n")
if err1 != nil {
return false
}
var Urls []Url
DB.Model(&s).Association("Url1").Find(&Urls)
for _, value := range Urls {
if value.Url1 == _url {
return true
}
}
return false
}
// 通过url查询文件类型 // 通过url查询文件类型
func Find1(_url string, key string) string { func Find1(_url string, key string) string {
var p Content var p Content
...@@ -162,36 +149,31 @@ func Createuser(_User Users) { ...@@ -162,36 +149,31 @@ func Createuser(_User Users) {
//新建链接 //新建链接
/* 返回值: /* 返回值:
3 表示sid已经过期,需要重新分配 3 表示sid_url已经过期,需要重新分配
2 表示内容过期 2 表示内容过期
1 表示密码正确 1 表示密码正确
0 表示密码不正确 0 表示密码不正确
*/ */
func Createlink(sid string, _passwd string, _url string, _Time1 time.Time) uint { func Createlink(sid string, _passwd string, _url string, _Time1 time.Time) uint {
var p Content var p Content
DB.First(&p, "Url1 = ?", _url) DB.First(&p,"Url1 = ?", _url)
if p.Passwd == _passwd { if p.Passwd == _passwd {
if Checkt(p) { if Checkt(p) {
//fmt.Println(sid,_passwd,_url,_Time1) //fmt.Println(sid,_passwd,_url,_Time1)
return 2 return 2
} }
var p1 Sid var p1 Rel
err := DB.First(&p1, "S = ?", sid).Error err := DB.Where(&Rel{Sid: sid,Url: _url}).First(&p1).Error
if err != nil { if err != nil {
sid1 := Sid{ rel1 := Rel{
S: sid, Sid: sid,
Url: _url,
Time: _Time1, Time: _Time1,
Url1: []Url{
{Url1: _url},
},
} }
DB.Create(&sid1) DB.Create(&rel1)
} else { } else {
t := time.Now() p1.Time = _Time1
if t.After(p1.Time) { DB.Save(&p1)
return 3
}
DB.Model(&p1).Association("Url1").Append(&Url{Url1: _url})
} }
return 1 return 1
} }
...@@ -200,20 +182,15 @@ func Createlink(sid string, _passwd string, _url string, _Time1 time.Time) uint ...@@ -200,20 +182,15 @@ func Createlink(sid string, _passwd string, _url string, _Time1 time.Time) uint
// 第一次上传 // 第一次上传
func CreatelinkFirstTime(sid string, _url string, _Time1 time.Time) { func CreatelinkFirstTime(sid string, _url string, _Time1 time.Time) {
sid1 := Sid{ sid1 := Rel{
S: sid, Sid: sid,
Url: _url,
Time: _Time1, Time: _Time1,
Url1: []Url{
{Url1: _url},
},
} }
DB.Create(&sid1) DB.Create(&sid1)
} }
/* /*
func Test() { func Test() {
var p Content fmt.Println(Find("ab","12345"))
var Url2 string = "1234"
DB.First(&p, "url1 = ?", Url2)
fmt.Println(Checkt(p))
}*/ }*/
...@@ -19,17 +19,11 @@ type Content struct { ...@@ -19,17 +19,11 @@ type Content struct {
Filename string Filename string
} }
type Sid struct { type Rel struct {
gorm.Model gorm.Model
Sid string
Url string
Time time.Time Time time.Time
S string
Url1 []Url `gorm:"many2many:sid_urls;"`
}
type Url struct
{
gorm.Model
Url1 string
} }
type Users struct { 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