update encounter like #1
This commit is contained in:
parent
127ef0722b
commit
bb9916ab60
@ -61,8 +61,9 @@ func (e *Encounters) Create(context *gin.Context) {
|
|||||||
func (e *Encounters) List(context *gin.Context) {
|
func (e *Encounters) List(context *gin.Context) {
|
||||||
num := context.GetFloat64(consts.ValidatorPrefix + "num")
|
num := context.GetFloat64(consts.ValidatorPrefix + "num")
|
||||||
skip := context.GetFloat64(consts.ValidatorPrefix + "skip")
|
skip := context.GetFloat64(consts.ValidatorPrefix + "skip")
|
||||||
|
user_id := context.GetFloat64(consts.ValidatorPrefix + "user_id")
|
||||||
|
|
||||||
encounters := curd.CreateEncounterCurdFactory().List(int(num), int(skip))
|
encounters := curd.CreateEncounterCurdFactory().List(int(num), int(skip), int(user_id))
|
||||||
if encounters != nil {
|
if encounters != nil {
|
||||||
response.Success(context, consts.CurdStatusOkMsg, encounters)
|
response.Success(context, consts.CurdStatusOkMsg, encounters)
|
||||||
} else {
|
} else {
|
||||||
|
@ -10,8 +10,9 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type List struct {
|
type List struct {
|
||||||
Num int `form:"num" json:"num"`
|
Num int `form:"num" json:"num"`
|
||||||
Skip int `form:"skip" json:"skip"`
|
Skip int `form:"skip" json:"skip"`
|
||||||
|
UserId int `form:"user_id" json:"user_id"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l List) CheckParams(context *gin.Context) {
|
func (l List) CheckParams(context *gin.Context) {
|
||||||
|
@ -3,9 +3,11 @@ package model
|
|||||||
import (
|
import (
|
||||||
"catface/app/global/variable"
|
"catface/app/global/variable"
|
||||||
"catface/app/utils/data_bind"
|
"catface/app/utils/data_bind"
|
||||||
|
"log"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
|
"gorm.io/gorm"
|
||||||
)
|
)
|
||||||
|
|
||||||
func CreateEncounterFactory(sqlType string) *Encounter {
|
func CreateEncounterFactory(sqlType string) *Encounter {
|
||||||
@ -52,12 +54,48 @@ func (e *Encounter) InsertDate(c *gin.Context) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *Encounter) Show(num, skip int) (temp []EncounterList) {
|
func (e *Encounter) Show(num, skip, user_id int) (temp []EncounterList) {
|
||||||
sql := `SELECT e.id, user_id, title, avatar, avatar_height, avatar_width, e.updated_at,
|
sql := `
|
||||||
user_name, user_avatar FROM encounters e JOIN tb_users u ON e.user_id = u.id
|
SELECT e.id, e.user_id, title, avatar, avatar_height, avatar_width, e.updated_at, user_name, user_avatar,
|
||||||
|
EXISTS (
|
||||||
|
SELECT 1
|
||||||
|
FROM encounter_likes l
|
||||||
|
WHERE l.user_id = ? AND l.encounter_id = e.id
|
||||||
|
) AS ue_like
|
||||||
|
FROM encounters e
|
||||||
|
JOIN tb_users u ON e.user_id = u.id
|
||||||
LIMIT ? OFFSET ?
|
LIMIT ? OFFSET ?
|
||||||
`
|
`
|
||||||
_ = e.Raw(sql, num, skip).Scan(&temp)
|
// err := e.Raw(sql, user_id, num, skip).Scan(&temp).Error
|
||||||
|
// fmt.Println(err)
|
||||||
|
|
||||||
|
// 使用 Debug 方法打印详细日志
|
||||||
|
var rows *gorm.DB
|
||||||
|
if rows = e.Raw(sql, user_id, num, skip); rows.Error != nil {
|
||||||
|
log.Println("查询失败:", rows.Error)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
// 获取底层的 sql.Rows 对象
|
||||||
|
sqlRows, err := rows.Rows()
|
||||||
|
if err != nil {
|
||||||
|
log.Println("获取 sql.Rows 失败:", err)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
defer sqlRows.Close()
|
||||||
|
|
||||||
|
for sqlRows.Next() {
|
||||||
|
var item EncounterList
|
||||||
|
var ueLikeInt int
|
||||||
|
dest := []interface{}{
|
||||||
|
&item.Id, &item.UserId, &item.Title, &item.Avatar, &item.AvatarHeight, &item.AvatarWidth, &item.UpdatedAt, &item.UserName, &item.UserAvatar, &ueLikeInt,
|
||||||
|
}
|
||||||
|
if err := sqlRows.Scan(dest...); err != nil {
|
||||||
|
log.Println("扫描失败:", err)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
item.Like = ueLikeInt == 1
|
||||||
|
temp = append(temp, item)
|
||||||
|
}
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
9
app/model/encounter_like.go
Normal file
9
app/model/encounter_like.go
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
package model
|
||||||
|
|
||||||
|
type EncounterLike struct {
|
||||||
|
BaseModel
|
||||||
|
UsersModelId int `gorm:"column:user_id" json:"user_id"`
|
||||||
|
UsersModel UsersModel
|
||||||
|
EncounterId int `gorm:"column:encounter_id" json:"encounter_id"`
|
||||||
|
Encounter Encounter
|
||||||
|
}
|
@ -11,6 +11,7 @@ type EncounterList struct {
|
|||||||
AvatarHeight int `form:"avatar_height" json:"height"`
|
AvatarHeight int `form:"avatar_height" json:"height"`
|
||||||
AvatarWidth int `form:"avatar_width" json:"width"`
|
AvatarWidth int `form:"avatar_width" json:"width"`
|
||||||
UpdatedAt *time.Time `form:"updated_at" json:"time"` // TIP 设为 *time.Time,omitempty 和 autoUpdated 就都可以生效
|
UpdatedAt *time.Time `form:"updated_at" json:"time"` // TIP 设为 *time.Time,omitempty 和 autoUpdated 就都可以生效
|
||||||
|
Like bool `form:"ue_like" json:"like"`
|
||||||
|
|
||||||
UserName string `form:"user_name" json:"userName"`
|
UserName string `form:"user_name" json:"userName"`
|
||||||
UserAvatar string `form:"user_avatar" json:"userAvatar"`
|
UserAvatar string `form:"user_avatar" json:"userAvatar"`
|
||||||
|
@ -10,9 +10,9 @@ type EncounterCurd struct {
|
|||||||
encounter *model.Encounter
|
encounter *model.Encounter
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *EncounterCurd) List(num, skip int) []model.EncounterList {
|
func (e *EncounterCurd) List(num, skip, user_id int) []model.EncounterList {
|
||||||
if num == 0 {
|
if num == 0 {
|
||||||
num = 15
|
num = 15
|
||||||
}
|
}
|
||||||
return model.CreateEncounterFactory("").Show(num, skip)
|
return model.CreateEncounterFactory("").Show(num, skip, user_id)
|
||||||
}
|
}
|
||||||
|
@ -25,3 +25,13 @@ func TestEncouner(t *testing.T) {
|
|||||||
t.Error(err)
|
t.Error(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestEncounterLike(t *testing.T) {
|
||||||
|
Init()
|
||||||
|
|
||||||
|
encounterLike := model.EncounterLike{}
|
||||||
|
err := DB.AutoMigrate(&encounterLike)
|
||||||
|
if err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user