Commit 1a2ccef2 authored by lytzjzxr's avatar lytzjzxr
Browse files

调试后的数据库及一些功能函数

parent f5d2ff00
......@@ -3,7 +3,7 @@ package controller
import (
"net"
"net/http"
"pastebin_backend/app/response"
"backend/app/response"
//"pastebin_backend/model"
//"error"
......
package app
import (
"pastebin_backend/utils"
"backend/utils"
//"net/http"
"github.com/labstack/echo/v4"
"github.com/sirupsen/logrus"
......
package app
import (
"pastebin_backend/app/controller"
"pastebin_backend/app/middleware"
//"pastebin_backend/model"
"backend/app/controller"
"backend/app/middleware"
//"backend/model"
)
func addRoutes() {
......
module pastebin_backend
module backend
go 1.19
......
......@@ -6,18 +6,27 @@
package main
import (
"pastebin_backend/app"
//"backend/app"
//"pastebin_backend/app/controller"
"pastebin_backend/model"
"backend/model"
//"time"
"fmt"
"github.com/sirupsen/logrus"
)
func main() {
logrus.SetReportCaller(true)
model.Init()
app.InitWebFramework()
app.StartServer()
/* var user3 model.Users
user3.Passwd = "123456"
model.Createuser(user3)
var url2 = new(model.Url)
var s2 string = "/person/example"
var s3 string = "lytgodbb"
for i := 0; i <= 10; i++ {
model.Checkt(s2)
}*/
fmt.Println(model.Find("fF2pGKiB","/person/example "))
//controller.BuildSocket()
//controller.RecvFile()
}
package model
import (
//"fmt"
"time"
"math/rand"
......@@ -14,20 +15,24 @@ var DB *gorm.DB
var id1 uint = 0
func Init() {
connectDatabase()
ConnectDatabase()
var err error
// insert auto-table
err = DB.AutoMigrate(&content{})
err = DB.AutoMigrate(&Content{})
if err != nil {
logrus.Fatal(err)
}
err = DB.AutoMigrate(&Url{},&Users{})
err = DB.AutoMigrate(&Users{})
if err != nil {
logrus.Fatal(err)
}
err = DB.AutoMigrate(&Url{},&Sid{})
if err != nil {
logrus.Fatal(err)
}
}
func connectDatabase() {
func ConnectDatabase() {
// config
viper.SetConfigName("config")
viper.SetConfigType("yaml")
......@@ -48,9 +53,9 @@ func connectDatabase() {
// Backcheck content through link
//通过链接反查内容
func findlink(_url string) string {
var p content
err := DB.First(&p, "Url = ?", _url)
func Findlink(_url string) string {
var p Content
err := DB.First(&p, "Url1 = ?", _url)
if err != nil {
logrus.Error(err)
}
......@@ -59,24 +64,25 @@ func findlink(_url string) string {
// 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++
p := content{
p := Content{
ID : id1,
Route: _Route,
Time: _Time,
Passwd: _Passwd,
Date: time.Now(),
Time1: _Time1,
Time2: 0,
Url: _url,
Url1: _url,
}
DB.Create(&p)
}
// Check whether the number of visits exceeds the threshold and the time limit
//检查是否超过总访问次数和截止时间
func checkt(_Route string) {
var p content
func Checkt(_Route string) {
var p Content
err := DB.First(&p, "Route = ?",_Route)
if err != nil {
logrus.Error(err)
......@@ -89,19 +95,26 @@ func checkt(_Route string) {
}
//查找sessionid和url是否关联
func find(sid string,_url string) bool {
var url1 = new(Url)
err := DB.Preload("User1").Where("Url=?",_url).Find(&url1)
if err != nil {
return true
func Find(sid string,_url string) bool {
var url Url
err1 := DB.First(&url, "Url1 = ?",_url).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
}
return true
}
var letters = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
var letters = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789")
//随机生成字符串
func randStr(n int) string {
rand.Seed(time.Now().Unix())
b := make([]rune, n)
for i := range b {
b[i] = letters[rand.Intn(len(letters))]
......@@ -110,20 +123,26 @@ func randStr(n int) string {
}
//新建用户
func createuser(_User Users) {
func Createuser(_User Users) {
_User.SessionId=randStr(8)
DB.Create(&_User)
}
//新建链接
func createlink(sid string , _passwd string , _url string) bool {
var p content
DB.First(&p, "Url = ?", _url)
func Createlink(sid string , _passwd string , _url string) bool {
var p Content
DB.First(&p, "Url1 = ?", _url)
if p.Passwd == _passwd {
var p1 Users
var p1 Sid
var p2 Url
DB.First(&p1,"SessionId = ?",sid)
DB.First(&p2,"Url = ?",_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
}
......
......@@ -2,9 +2,10 @@ package model
import (
"time"
"gorm.io/gorm"
)
type content struct {
type Content struct {
ID uint `gorm:"primarykey"`
Route string
Time uint
......@@ -13,12 +14,19 @@ type content struct {
Size uint
Time1 time.Time
Time2 uint
Url string
Url1 string
}
type Url struct {
Url string
User1 []Users
gorm.Model
Url1 string
User1 []Sid
}
type Sid struct
{
S string
UrlID uint
}
type Users struct {
......@@ -28,5 +36,4 @@ type Users struct {
Name string
Size uint
Route string
UrlID uint
}
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