34 lines
768 B
Go
34 lines
768 B
Go
package eventhandler
|
|
|
|
import (
|
|
"bbs-go/internal/models"
|
|
"bbs-go/internal/models/constants"
|
|
"bbs-go/internal/pkg/event"
|
|
"bbs-go/internal/services"
|
|
"reflect"
|
|
)
|
|
|
|
func init() {
|
|
event.RegHandler(reflect.TypeOf(event.FollowEvent{}), handleFollowEvent)
|
|
}
|
|
|
|
func handleFollowEvent(i interface{}) {
|
|
e := i.(event.FollowEvent)
|
|
|
|
// 将该用户下的帖子添加到信息流
|
|
services.TopicService.ScanByUser(e.OtherId, func(topics []models.Topic) {
|
|
for _, topic := range topics {
|
|
if topic.Status != constants.StatusOk {
|
|
continue
|
|
}
|
|
_ = services.UserFeedService.Create(&models.UserFeed{
|
|
UserId: e.UserId,
|
|
DataType: constants.EntityTopic,
|
|
DataId: topic.Id,
|
|
AuthorId: topic.UserId,
|
|
CreateTime: topic.CreateTime,
|
|
})
|
|
}
|
|
})
|
|
}
|