Commit 9d3ba6f6 authored by lytzjzxr's avatar lytzjzxr
Browse files

调试完数据库第一次修改

parent 596810c8
...@@ -3,7 +3,7 @@ package model ...@@ -3,7 +3,7 @@ package model
import ( import (
//"fmt" //"fmt"
"time" "time"
// "math/rand" // "math/rand"
"github.com/sirupsen/logrus" "github.com/sirupsen/logrus"
"github.com/spf13/viper" "github.com/spf13/viper"
...@@ -26,7 +26,7 @@ func Init() { ...@@ -26,7 +26,7 @@ func Init() {
if err != nil { if err != nil {
logrus.Fatal(err) logrus.Fatal(err)
} }
err = DB.AutoMigrate(&Sid{}, &Url{}) err = DB.AutoMigrate(&Sid{},&Url{})
if err != nil { if err != nil {
logrus.Fatal(err) logrus.Fatal(err)
} }
...@@ -52,7 +52,7 @@ func ConnectDatabase() { ...@@ -52,7 +52,7 @@ func ConnectDatabase() {
} }
// Backcheck content through link // Backcheck content through link
// 通过链接反查内容 //通过链接反查内容
func Findlink(_url string) string { func Findlink(_url string) string {
var p Content var p Content
err := DB.First(&p, "Url1 = ?", _url) err := DB.First(&p, "Url1 = ?", _url)
...@@ -63,41 +63,51 @@ func Findlink(_url string) string { ...@@ -63,41 +63,51 @@ func Findlink(_url string) string {
} }
// save text information // save text information
// 保存文本和文件信息 //保存文本和文件信息
func Savetext(_Route string, _Time uint, _Passwd string, _Time1 time.Time, _url string) { func Savetext(_Route string, _Time uint, _Passwd string,_Time1 time.Time,_url string) {
id1++ id1++
p := Content{ p := Content{
ID: id1, ID : id1,
Route: _Route, Route: _Route,
Time: _Time, Time: _Time,
Passwd: _Passwd, Passwd: _Passwd,
Date: time.Now(), Date: time.Now(),
Time1: _Time1, Time1: _Time1,
Time2: 0, Time2: 0,
Url1: _url, Url1: _url,
} }
DB.Create(&p) DB.Create(&p)
} }
// Check whether the number of visits exceeds the threshold and the time limit // Check whether the number of visits exceeds the threshold and the time limit
// 检查是否超过总访问次数和截止时间 //检查是否超过总访问次数和截止时间
func Checkt(_Route string) { func Checkt(p Content) bool {
var p Content
err := DB.First(&p, "Route = ?", _Route)
if err != nil {
logrus.Error(err)
}
t := time.Now() t := time.Now()
p.Time2++ p.Time2++
if p.Time2 > p.Time || t.After(p.Time1) { if p.Time2 > p.Time||t.After(p.Time1) {
DB.Delete(&p) DB.Delete(&p)
return true
} }
return false
} }
/*
这个函数那边有可能需要
//检查sid是否超时
func Checkt1(sid string) bool {
var s Sid
DB.First(&s, "S = ?",sid)
t := time.Now()
if t.After(s._Time) {
return false
} else {
return true
}
}*/
// 查找sessionid和url是否关联 //查找sessionid和url是否关联
func Find(sid string, _url string) bool { func Find(sid string,_url string) bool {
var s Sid var s Sid
err1 := DB.First(&s, "S = ?", sid).Error err1 := DB.First(&s, "S = ?",sid).Error
//fmt.Println(url.Url1,url.ID,"\n") //fmt.Println(url.Url1,url.ID,"\n")
if err1 != nil { if err1 != nil {
return false return false
...@@ -106,13 +116,13 @@ func Find(sid string, _url string) bool { ...@@ -106,13 +116,13 @@ func Find(sid string, _url string) bool {
DB.Model(&s).Association("Url1").Find(&Urls) DB.Model(&s).Association("Url1").Find(&Urls)
for _, value := range Urls { for _, value := range Urls {
if value.Url1 == _url { if value.Url1 == _url {
return true return true
} }
} }
return false return false
} }
var letters = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789") //var letters = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789")
/*//*随机生成字符串 /*//*随机生成字符串
func randStr(n int) string { func randStr(n int) string {
...@@ -124,31 +134,57 @@ func randStr(n int) string { ...@@ -124,31 +134,57 @@ func randStr(n int) string {
return string(b) return string(b)
}*/ }*/
// 新建用户 //新建用户
func Createuser(_User Users) { func Createuser(_User Users) {
//_User.SessionId=randStr(8) //_User.SessionId=randStr(8)
DB.Create(&_User) DB.Create(&_User)
} }
// 新建链接 //新建链接
func Createlink(sid string, _passwd string, _url string) bool { /* 返回值:
3 表示sid已经过期,需要重新分配
2 表示内容过期
1 表示密码正确
0 表示密码不正确
*/
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 Checkt(p) {
return 2
}
if p.Passwd == _passwd { if p.Passwd == _passwd {
var p1 Sid var p1 Sid
err := DB.First(&p1, "S = ?", sid).Error err := DB.First(&p1, "S = ?", sid).Error
if err != nil { if err !=nil {
sid1 := Sid{ sid1 := Sid{
S: sid, S:sid,
_Time: _Time1,
Url1: []Url{ Url1: []Url{
{Url1: _url}, { Url1: _url},
}, },
} }
DB.Create(&sid1) DB.Create(&sid1)
} else { } else {
DB.Model(&p1).Association("Url1").Append(&Url{Url1: _url}) t := time.Now()
} if t.After(p1._Time) {
return true return 3
}
DB.Model(&p1).Association("Url1").Append(&Url{Url1:_url})
}
return 1
} }
return false return 0
} }
//第一次上传
func _Createlink(sid string,_url string,_Time1 time.Time) {
sid1 := Sid{
S: sid,
_Time: _Time1,
Url1: []Url{
{ Url1: _url},
},
}
DB.Create(&sid1)
}
\ No newline at end of file
...@@ -20,6 +20,7 @@ type Content struct { ...@@ -20,6 +20,7 @@ type Content struct {
type Sid struct { type Sid struct {
gorm.Model gorm.Model
S string S string
_Time time.Time
Url1 []Url `gorm:"many2many:sid_urls;"` Url1 []Url `gorm:"many2many:sid_urls;"`
} }
......
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