108 lines
2.8 KiB
Go
108 lines
2.8 KiB
Go
package rpc
|
|
|
|
import (
|
|
cmmdl "go-common/app/service/main/spy/model"
|
|
"go-common/library/net/rpc"
|
|
"go-common/library/net/rpc/context"
|
|
|
|
"go-common/app/service/main/spy/conf"
|
|
"go-common/app/service/main/spy/model"
|
|
"go-common/app/service/main/spy/service"
|
|
)
|
|
|
|
// RPC server def.
|
|
type RPC struct {
|
|
s *service.Service
|
|
}
|
|
|
|
// New create instance of rpc server2 and return.
|
|
func New(c *conf.Config, s *service.Service) (svr *rpc.Server) {
|
|
r := &RPC{s: s}
|
|
svr = rpc.NewServer(c.RPCServer)
|
|
if err := svr.Register(r); err != nil {
|
|
panic(err)
|
|
}
|
|
return
|
|
}
|
|
|
|
// Ping check rpc server health.
|
|
func (r *RPC) Ping(c context.Context, arg *struct{}, res *struct{}) (err error) {
|
|
return
|
|
}
|
|
|
|
// UserScore rpc req for getting user spy score.
|
|
func (r *RPC) UserScore(c context.Context, arg *cmmdl.ArgUserScore, res *cmmdl.UserScore) (err error) {
|
|
var (
|
|
ui *model.UserInfo
|
|
)
|
|
if ui, err = r.s.UserInfo(c, arg.Mid, arg.IP); ui != nil && err == nil {
|
|
*res = cmmdl.UserScore{Mid: ui.Mid, Score: ui.Score}
|
|
}
|
|
return
|
|
}
|
|
|
|
// HandleEvent rpc req for handling spy event , maybe from spy-job.
|
|
func (r *RPC) HandleEvent(c context.Context, arg *cmmdl.ArgHandleEvent, res *struct{}) (err error) {
|
|
var event = &model.EventMessage{
|
|
Time: arg.Time,
|
|
IP: arg.IP,
|
|
Service: arg.Service,
|
|
Event: arg.Event,
|
|
ActiveMid: arg.ActiveMid,
|
|
TargetMid: arg.TargetMid,
|
|
TargetID: arg.TargetID,
|
|
Args: arg.Args,
|
|
Result: arg.Result,
|
|
Effect: arg.Effect,
|
|
RiskLevel: arg.RiskLevel,
|
|
}
|
|
return r.s.HandleEvent(c, event)
|
|
}
|
|
|
|
// ReBuildPortrait rpc.
|
|
func (r *RPC) ReBuildPortrait(c context.Context, arg *cmmdl.ArgReBuild, res *struct{}) (err error) {
|
|
return r.s.ReBuildPortrait(c, arg.Mid, arg.Reason)
|
|
}
|
|
|
|
// UpdateBaseScore rpc.
|
|
func (r *RPC) UpdateBaseScore(c context.Context, arg *cmmdl.ArgReset, res *struct{}) (err error) {
|
|
return r.s.UpdateBaseScore(c, arg)
|
|
}
|
|
|
|
// UpdateEventScore rpc.
|
|
func (r *RPC) UpdateEventScore(c context.Context, arg *cmmdl.ArgReset, res *struct{}) (err error) {
|
|
return r.s.UpdateEventScore(c, arg)
|
|
}
|
|
|
|
// UserInfo rpc.
|
|
func (r *RPC) UserInfo(c context.Context, arg *cmmdl.ArgUser, res *cmmdl.UserInfo) (err error) {
|
|
var (
|
|
ui *model.UserInfo
|
|
)
|
|
if ui, err = r.s.UserInfo(c, arg.Mid, arg.IP); ui != nil && err == nil {
|
|
*res = *ui
|
|
}
|
|
return
|
|
}
|
|
|
|
// ClearReliveTimes rpc.
|
|
func (r *RPC) ClearReliveTimes(c context.Context, arg *cmmdl.ArgReset, res *struct{}) (err error) {
|
|
return r.s.ClearReliveTimes(c, arg)
|
|
}
|
|
|
|
// StatByID rpc.
|
|
func (r *RPC) StatByID(c context.Context, arg *cmmdl.ArgStat, res *[]*cmmdl.Statistics) (err error) {
|
|
var (
|
|
stat []*model.Statistics
|
|
)
|
|
if stat, err = r.s.StatByIDGroupEvent(c, arg.Mid, arg.ID); stat != nil && err == nil {
|
|
*res = stat
|
|
}
|
|
return
|
|
}
|
|
|
|
// RefreshBaseScore rpc.
|
|
func (r *RPC) RefreshBaseScore(c context.Context, arg *cmmdl.ArgReset, res *struct{}) (err error) {
|
|
return r.s.RefreshBaseScore(c, arg)
|
|
}
|