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

解决了issue5所提出的问题

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