Create & Init Project...

This commit is contained in:
2019-04-22 18:49:16 +08:00
commit fc4fa37393
25440 changed files with 4054998 additions and 0 deletions

View File

@@ -0,0 +1,42 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_test",
"go_library",
)
go_test(
name = "go_default_test",
srcs = ["spy_test.go"],
embed = [":go_default_library"],
rundir = ".",
tags = ["automanaged"],
deps = ["//app/service/main/spy/model:go_default_library"],
)
go_library(
name = "go_default_library",
srcs = ["spy.go"],
importpath = "go-common/app/service/main/spy/rpc/client",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/service/main/spy/model:go_default_library",
"//library/net/rpc:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,96 @@
package spy
import (
"context"
"go-common/app/service/main/spy/model"
"go-common/library/net/rpc"
)
const (
_addEvent = "RPC.HandleEvent"
_userScore = "RPC.UserScore"
_reBuildPortrait = "RPC.ReBuildPortrait"
//_resetManually = "RPC.ResetManually"
_updateBaseScore = "RPC.UpdateBaseScore"
_refreshBaseScore = "RPC.RefreshBaseScore"
_updateEventScore = "RPC.UpdateEventScore"
_userInfo = "RPC.UserInfo"
_clearReliveTimes = "RPC.ClearReliveTimes"
_statByID = "RPC.StatByID"
)
const (
_appid = "account.service.spy"
)
var (
_noRes = &struct{}{}
)
// Service struct info.
type Service struct {
client *rpc.Client2
}
// New create instance of service and return.
func New(c *rpc.ClientConfig) (s *Service) {
s = &Service{}
s.client = rpc.NewDiscoveryCli(_appid, c)
return
}
// HandleEvent add spy event to user.
func (s *Service) HandleEvent(c context.Context, arg *model.ArgHandleEvent) (err error) {
err = s.client.Call(c, _addEvent, arg, _noRes)
return
}
// UserScore archive get user spy score.
func (s *Service) UserScore(c context.Context, arg *model.ArgUserScore) (res *model.UserScore, err error) {
res = &model.UserScore{}
err = s.client.Call(c, _userScore, arg, res)
return
}
// ReBuildPortrait rebuild user risk portrait by task.
func (s *Service) ReBuildPortrait(c context.Context, arg *model.ArgReBuild) (err error) {
err = s.client.Call(c, _reBuildPortrait, arg, _noRes)
return
}
// UpdateBaseScore cli.
func (s *Service) UpdateBaseScore(c context.Context, arg *model.ArgReset) (err error) {
err = s.client.Call(c, _updateBaseScore, arg, _noRes)
return
}
// RefreshBaseScore cli.
func (s *Service) RefreshBaseScore(c context.Context, arg *model.ArgReset) (err error) {
err = s.client.Call(c, _refreshBaseScore, arg, _noRes)
return
}
// UpdateEventScore cli.
func (s *Service) UpdateEventScore(c context.Context, arg *model.ArgReset) (err error) {
err = s.client.Call(c, _updateEventScore, arg, _noRes)
return
}
// UserInfo cli.
func (s *Service) UserInfo(c context.Context, arg *model.ArgUser) (res *model.UserInfo, err error) {
err = s.client.Call(c, _userInfo, arg, res)
return
}
// ClearReliveTimes cli.
func (s *Service) ClearReliveTimes(c context.Context, arg *model.ArgReset) (err error) {
err = s.client.Call(c, _clearReliveTimes, arg, _noRes)
return
}
// StatByID cli.
func (s *Service) StatByID(c context.Context, arg *model.ArgStat) (stat []*model.Statistics, err error) {
err = s.client.Call(c, _statByID, arg, &stat)
return
}

View File

@@ -0,0 +1,47 @@
package spy
import (
"context"
"testing"
"time"
model "go-common/app/service/main/spy/model"
)
func TestSpy(t *testing.T) {
s := New(nil)
time.Sleep(2 * time.Second)
testUpdateEventScore(t, s)
testUpdateBaseScore(t, s)
testUserScore(t, s)
testHandleEvent(t, s)
testReBuildPortrait(t, s)
}
func testUpdateEventScore(t *testing.T, s *Service) {
t.Log(s.UpdateEventScore(context.TODO(), &model.ArgReset{Mid: 23333, Operator: "admin test"}))
}
func testUpdateBaseScore(t *testing.T, s *Service) {
t.Log(s.UpdateBaseScore(context.TODO(), &model.ArgReset{Mid: 23333, Operator: "admin test"}))
}
func testUserScore(t *testing.T, s *Service) {
t.Log(s.UserScore(context.TODO(), &model.ArgUserScore{Mid: 23333, IP: "127.0.0.1"}))
}
func testHandleEvent(t *testing.T, s *Service) {
t.Log(s.HandleEvent(context.TODO(), &model.ArgHandleEvent{
IP: "127.0.0.1",
Service: "spy_service",
Event: "bind_mail_only",
ActiveMid: 23333,
TargetMid: 23333,
Effect: "",
RiskLevel: 1,
}))
}
func testReBuildPortrait(t *testing.T, s *Service) {
t.Log(s.ReBuildPortrait(context.TODO(), &model.ArgReBuild{Mid: 23333}))
}

View File

@@ -0,0 +1,35 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = ["rpc.go"],
importpath = "go-common/app/service/main/spy/rpc/server",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/service/main/spy/conf:go_default_library",
"//app/service/main/spy/model:go_default_library",
"//app/service/main/spy/service:go_default_library",
"//library/net/rpc:go_default_library",
"//library/net/rpc/context:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,107 @@
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)
}