37 lines
964 B
Go
37 lines
964 B
Go
package eventhandler
|
|
|
|
import (
|
|
"bbs-go/internal/models"
|
|
"bbs-go/internal/models/constants"
|
|
"bbs-go/internal/pkg/bbsurls"
|
|
"bbs-go/internal/pkg/event"
|
|
"bbs-go/internal/pkg/seo"
|
|
"bbs-go/internal/services"
|
|
"log/slog"
|
|
"reflect"
|
|
)
|
|
|
|
func init() {
|
|
event.RegHandler(reflect.TypeOf(event.TopicCreateEvent{}), handleTopicCreateEvent)
|
|
}
|
|
|
|
func handleTopicCreateEvent(i interface{}) {
|
|
e := i.(event.TopicCreateEvent)
|
|
|
|
services.UserFollowService.ScanFans(e.UserId, func(fansId int64) {
|
|
slog.With(slog.Any("topicId", e.TopicId), slog.Any("userId", e.UserId), slog.Any("fansId", fansId)).Info("用户关注,处理帖子")
|
|
if err := services.UserFeedService.Create(&models.UserFeed{
|
|
UserId: fansId,
|
|
DataId: e.TopicId,
|
|
DataType: constants.EntityTopic,
|
|
AuthorId: e.UserId,
|
|
CreateTime: e.CreateTime,
|
|
}); err != nil {
|
|
slog.Error(err.Error(), slog.Any("err", err))
|
|
}
|
|
})
|
|
|
|
// 百度链接推送
|
|
seo.Push(bbsurls.TopicUrl(e.TopicId))
|
|
}
|