2025-04-30 15:46:14 +08:00
|
|
|
package server
|
|
|
|
|
2025-05-05 10:30:33 +08:00
|
|
|
import (
|
|
|
|
"admin/apps/user/model"
|
|
|
|
"admin/apps/user/service"
|
|
|
|
"admin/internal/event"
|
|
|
|
"admin/lib/xlog"
|
|
|
|
"encoding/json"
|
2025-05-19 17:51:09 +08:00
|
|
|
"strconv"
|
2025-05-05 10:30:33 +08:00
|
|
|
)
|
2025-04-30 15:46:14 +08:00
|
|
|
|
|
|
|
type Server struct {
|
|
|
|
svc *service.Service
|
|
|
|
ctl *controller
|
|
|
|
}
|
|
|
|
|
|
|
|
func New(svc *service.Service) *Server {
|
2025-05-07 15:03:19 +08:00
|
|
|
srv := &Server{
|
2025-04-30 15:46:14 +08:00
|
|
|
svc: svc,
|
|
|
|
ctl: newController(svc),
|
|
|
|
}
|
2025-05-07 15:03:19 +08:00
|
|
|
srv.jobsSubscribe()
|
|
|
|
return srv
|
2025-04-30 15:46:14 +08:00
|
|
|
}
|
2025-05-05 10:30:33 +08:00
|
|
|
|
|
|
|
func (srv *Server) jobsSubscribe() {
|
2025-05-19 17:51:09 +08:00
|
|
|
event.GetMgrInstance().Subscribe("user", event.EventTopic_UserGameExecute, srv.subscriberHandlerUserExecute)
|
2025-05-05 10:30:33 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
func (srv *Server) subscriberHandlerUserExecute(msg *event.Msg) {
|
|
|
|
po := new(model.History)
|
2025-05-19 17:51:09 +08:00
|
|
|
msgHistory := &event.EventPayload_UserGameExecute{}
|
2025-05-05 10:30:33 +08:00
|
|
|
err := json.Unmarshal(msg.Payload, msgHistory)
|
|
|
|
if err != nil {
|
|
|
|
xlog.Errorf("unmarshal msg(%+v) err:%v", string(msg.Payload), err)
|
2025-05-07 15:03:19 +08:00
|
|
|
return
|
2025-05-05 10:30:33 +08:00
|
|
|
}
|
|
|
|
|
2025-05-19 17:51:09 +08:00
|
|
|
userInfo, find, err := srv.ctl.svc.GetUserById(msgHistory.UserId)
|
|
|
|
if err != nil {
|
|
|
|
xlog.Errorf("find user %+v info error:%v", msgHistory, err)
|
|
|
|
} else if !find {
|
|
|
|
xlog.Errorf("not found user info:%+v", msgHistory)
|
|
|
|
}
|
|
|
|
|
2025-05-05 10:30:33 +08:00
|
|
|
po.UserId = msgHistory.UserId
|
2025-05-19 17:51:09 +08:00
|
|
|
po.UserName = strconv.Itoa(msgHistory.UserId)
|
|
|
|
if find {
|
|
|
|
po.UserName = userInfo.Po.UserName
|
|
|
|
}
|
|
|
|
po.OpResourceType = msgHistory.OpResourceType
|
|
|
|
po.OpResourceGroup = msgHistory.OpResourceGroup
|
|
|
|
po.OpResourceKey = msgHistory.OpResourceKey
|
2025-05-05 10:30:33 +08:00
|
|
|
po.Method = msgHistory.Method
|
2025-05-19 17:51:09 +08:00
|
|
|
b, _ := json.Marshal(&map[string]any{
|
|
|
|
"project_id": msgHistory.ProjectId,
|
|
|
|
"project_name": msgHistory.ProjectName,
|
|
|
|
"src": msgHistory.SrcDataList,
|
|
|
|
"dst": msgHistory.DstDataList,
|
|
|
|
})
|
|
|
|
po.DetailInfo = string(b)
|
2025-05-05 10:30:33 +08:00
|
|
|
|
|
|
|
err = po.Create()
|
|
|
|
if err != nil {
|
|
|
|
xlog.Errorf("create user execute(%+v) err:%v", string(msg.Payload), err)
|
|
|
|
}
|
|
|
|
}
|