Files
common-server-public/archive/bbs-go/server/internal/services/eventhandler/topic_delete_handler.go
12600k-rog-d4 8f4d399cfd 20251209
2025-12-09 20:33:57 +08:00

54 lines
1.3 KiB
Go

package eventhandler
import (
"bbs-go/internal/models/constants"
"bbs-go/internal/pkg/event"
"bbs-go/internal/pkg/msg"
"bbs-go/internal/repositories"
"bbs-go/internal/services"
"reflect"
"github.com/mlogclub/simple/sqls"
)
func init() {
event.RegHandler(reflect.TypeOf(event.TopicDeleteEvent{}), handleTopicDeleteEvent)
}
func handleTopicDeleteEvent(i interface{}) {
e := i.(event.TopicDeleteEvent)
// 处理userFeed
services.UserFeedService.DeleteByDataId(e.TopicId, constants.EntityTopic)
// 发送消息
sendTopicDeleteMsg(e.TopicId, e.DeleteUserId)
// 操作日志
services.OperateLogService.AddOperateLog(e.DeleteUserId, constants.OpTypeDelete, constants.EntityTopic,
e.TopicId, "", nil)
}
// sendTopicDeleteMsg 话题被删除消息
func sendTopicDeleteMsg(topicId, deleteUserId int64) {
topic := repositories.TopicRepository.Get(sqls.DB(), topicId)
if topic == nil {
return
}
if topic.UserId == deleteUserId {
return
}
var (
from int64 = 0
to = topic.UserId
title = "你的话题被删除"
quoteContent = "《" + topic.GetTitle() + "》"
)
services.MessageService.SendMsg(from, to, msg.TypeTopicDelete, title, "", quoteContent,
&msg.TopicDeleteExtraData{
TopicId: topicId,
DeleteUserId: deleteUserId,
},
)
}