samba/server/club/handler/clubHandler.go
2025-06-04 09:51:39 +08:00

48 lines
1.2 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package handler
import (
"github.com/rabbitmq/amqp091-go"
"samba/pkg/log"
"samba/proto"
"samba/util/model"
"samba/util/util"
"strconv"
)
func onUserOnline(_ *amqp091.Delivery, msg map[string]interface{}) {
_, _, _, data := ParseMsg(msg)
req, err := util.MapToStructT[proto.UserOnline](data)
if err != nil {
log.Error(err.Error())
return
}
uid, _ := strconv.ParseInt(req.Uid, 10, 64)
model.AddClubMemberOnline(uid)
}
func onUserOffline(_ *amqp091.Delivery, msg map[string]interface{}) {
_, _, _, data := ParseMsg(msg)
req, err := util.MapToStructT[proto.UserOnline](data)
if err != nil {
log.Error(err.Error())
return
}
uid, _ := strconv.ParseInt(req.Uid, 10, 64)
model.DelClubMemberOnline(uid)
}
// todo:服务启动时该hash表中所有玩家在玩信息超出半小时的清除。 启动后开启定时器清除该信息,暂不处理
func onUserInClubGame(_ *amqp091.Delivery, msg map[string]interface{}) {
_, _, _, data := ParseMsg(msg)
req, err := util.MapToStructT[proto.ReqUserInClubGame](data)
if err != nil {
log.Error(err.Error())
return
}
if req.Playing > 0 {
model.AddClubMemberPlaying(req.UserId, req.ClubId, req.RoomId)
} else {
model.DelClubMemberPlaying(req.UserId, req.ClubId, req.RoomId)
}
}