feat: import services and standardize Go 1.26.5
This commit is contained in:
125
apps/social/feed/internal/models/query.go
Normal file
125
apps/social/feed/internal/models/query.go
Normal file
@@ -0,0 +1,125 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"git.apinb.com/bsm-social/feed/internal/impl"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func InitData() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func CreatePost(data *FeedPost) error {
|
||||
err := impl.DBService.Transaction(func(tx *gorm.DB) error {
|
||||
if err := tx.Create(&data).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
if err := tx.Create(&data.Attachs).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
if err := tx.Create(&data.Tags).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
|
||||
return err
|
||||
}
|
||||
func ChargePost(data *FeedPost) error {
|
||||
err := impl.DBService.Where("identity = ?", data.Identity).Updates(&data).Error
|
||||
return err
|
||||
}
|
||||
func DeletePost(identity string) error {
|
||||
err := impl.DBService.Where("identity = ?", identity).Delete(&FeedPost{}).Error
|
||||
return err
|
||||
}
|
||||
|
||||
// 点赞/踩操作
|
||||
func LikeAction(action_op, action_type, identity string) (err error) {
|
||||
var column string
|
||||
tx := impl.DBService
|
||||
if action_type == "post" {
|
||||
tx = tx.Model(&FeedPost{})
|
||||
} else if action_type == "comment" {
|
||||
tx = tx.Model(&FeedComment{})
|
||||
}
|
||||
if action_op == "ilike" {
|
||||
column = "cnt_like"
|
||||
} else if action_type == "unlike" {
|
||||
column = "cnt_unlike"
|
||||
}
|
||||
if err = tx.Where("identity = ?", identity).UpdateColumn(column, gorm.Expr(fmt.Sprintf("%s + ?", column), 1)).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// PostList
|
||||
func PostList(page, size int64, tag string) (list []*FeedPost, cnt int64, err error) {
|
||||
tx := impl.DBService.Order("created_at desc")
|
||||
if tag != "" {
|
||||
tx = tx.Joins("join feed_relate_tags on feed_relate_tags.post_identity = feed_post.identity", impl.DBService.Where(&FeedRelateTags{Key: tag}))
|
||||
tx = tx.Where("key = ?", tag)
|
||||
}
|
||||
|
||||
tx.Limit(int(page)).Offset(int((page - 1) * size))
|
||||
err = tx.Find(&list).Count(&cnt).Error
|
||||
fmt.Print("posts", list)
|
||||
return
|
||||
}
|
||||
|
||||
func AddTags(data *[]FeedTags) (err error) {
|
||||
err = impl.DBService.Create(data).Error
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return err
|
||||
}
|
||||
func ModifyTags(data *FeedTags) (err error) {
|
||||
err = impl.DBService.Where("identity = ?", data.Key).Save(data).Error
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func DeleteTags(key string) (err error) {
|
||||
err = impl.DBService.Where("identity = ?", key).Delete(&FeedTags{}).Error
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func TagsList() (list []*FeedTags, cnt int64, err error) {
|
||||
tags := make([]*FeedTags, 0)
|
||||
tx := impl.DBService.Order("created_at desc")
|
||||
err = tx.Find(&tags).Count(&cnt).Error
|
||||
return tags, cnt, err
|
||||
}
|
||||
|
||||
func AddComment(comment *FeedComment, authorIdentity string) (err error) {
|
||||
err = impl.DBService.Transaction(func(tx *gorm.DB) error {
|
||||
// 添加评论,更新文章评论量
|
||||
err := tx.Create(comment).Table("feed_post").Where("identity = ?", comment.PostIdentity).UpdateColumn("cnt_comment", gorm.Expr("cnt_comment + ?", 1)).Error
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if comment.ParentIdentity != "" {
|
||||
//更新被评论的评论数
|
||||
err = tx.Where("identity = ?", comment.ParentIdentity).UpdateColumn("cnt_comment", gorm.Expr("cnt_comment + ?", 1)).Error
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
func DeleteComment(identity string) (err error) {
|
||||
|
||||
return
|
||||
}
|
||||
Reference in New Issue
Block a user