嵌入文字搜索
This commit is contained in:
@@ -3,8 +3,11 @@ package models
|
||||
import (
|
||||
"database/sql"
|
||||
"errors"
|
||||
"fmt"
|
||||
"log"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
_ "github.com/go-sql-driver/mysql"
|
||||
)
|
||||
@@ -13,6 +16,8 @@ type MysqlConnection struct {
|
||||
Database *sql.DB
|
||||
}
|
||||
|
||||
var connection *sql.DB
|
||||
|
||||
// 初始化数据库连接
|
||||
func (m *MysqlConnection) Init() (err error) {
|
||||
user := Viper.Get("mysql.user").(string)
|
||||
@@ -21,11 +26,12 @@ func (m *MysqlConnection) Init() (err error) {
|
||||
port := Viper.Get("mysql.port").(int)
|
||||
database := Viper.Get("mysql.database").(string)
|
||||
sqlconf := user + ":" + password + "@tcp(" + host + ":" + strconv.Itoa(port) + ")/" + database + "?charset=utf8mb4&parseTime=True&loc=Local"
|
||||
m.Database, err = sql.Open("mysql", sqlconf) // 连接数据库
|
||||
connection, err = sql.Open("mysql", sqlconf) // 连接数据库
|
||||
if err != nil {
|
||||
log.Println("连接数据库失败", err)
|
||||
return
|
||||
}
|
||||
m.Database = connection
|
||||
return
|
||||
}
|
||||
|
||||
@@ -75,3 +81,61 @@ func (m *MysqlConnection) GetImages(page int, size int) (images []byte, err erro
|
||||
images = append(images, []byte("]")...)
|
||||
return
|
||||
}
|
||||
|
||||
type User struct {
|
||||
Id int `json:"id"`
|
||||
UserName string `json:"user_name"`
|
||||
Avatar string `json:"avatar"`
|
||||
CreateTime time.Time `json:"create_time"`
|
||||
UpdateTime time.Time `json:"update_time"`
|
||||
}
|
||||
|
||||
// 获取一组用户信息
|
||||
func QueryUserList(id_list []int) (users []User) {
|
||||
count := len(id_list)
|
||||
if count == 0 {
|
||||
return
|
||||
}
|
||||
idstr := strings.Trim(strings.Replace(fmt.Sprint(id_list), " ", ",", -1), "[]")
|
||||
rows, err := connection.Query("SELECT id, user_name, avatar, update_time, create_time FROM web_member WHERE id IN (" + idstr + ") LIMIT " + strconv.Itoa(count))
|
||||
if err != nil {
|
||||
log.Println("获取用户列表失败", err)
|
||||
return
|
||||
}
|
||||
defer rows.Close()
|
||||
for rows.Next() {
|
||||
var user User
|
||||
rows.Scan(&user.Id, &user.UserName, &user.Avatar, &user.UpdateTime, &user.CreateTime)
|
||||
users = append(users, user)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
type Article struct {
|
||||
Id int `json:"id"`
|
||||
Title string `json:"title"`
|
||||
Tags string `json:"tags"`
|
||||
CreateTime time.Time `json:"create_time"`
|
||||
UpdateTime time.Time `json:"update_time"`
|
||||
}
|
||||
|
||||
// 获取一组文章信息
|
||||
func QueryArticleList(id_list []int) (articles []Article) {
|
||||
count := len(id_list)
|
||||
if count == 0 {
|
||||
return
|
||||
}
|
||||
idstr := strings.Trim(strings.Replace(fmt.Sprint(id_list), " ", ",", -1), "[]")
|
||||
rows, err := connection.Query("SELECT id, title, tags, update_time, create_time FROM web_article WHERE id IN (" + idstr + ")")
|
||||
if err != nil {
|
||||
log.Println("获取文章列表失败", err)
|
||||
return
|
||||
}
|
||||
defer rows.Close()
|
||||
for rows.Next() {
|
||||
var article Article
|
||||
rows.Scan(&article.Id, &article.Title, &article.Tags, &article.UpdateTime, &article.CreateTime)
|
||||
articles = append(articles, article)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
Reference in New Issue
Block a user