48 lines
1.2 KiB
Go
48 lines
1.2 KiB
Go
![]() |
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)
|
|||
|
}
|
|||
|
}
|