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,34 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = ["server.go"],
importpath = "go-common/app/service/main/spy/server/grpc",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/service/main/spy/api:go_default_library",
"//app/service/main/spy/model:go_default_library",
"//app/service/main/spy/service:go_default_library",
"//library/net/rpc/warden: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,138 @@
// Package server generate by warden_gen
package server
import (
"context"
pb "go-common/app/service/main/spy/api"
"go-common/app/service/main/spy/model"
service "go-common/app/service/main/spy/service"
"go-common/library/net/rpc/warden"
)
// New Spy warden rpc server
func New(c *warden.ServerConfig, svr *service.Service) *warden.Server {
ws := warden.NewServer(c)
pb.RegisterSpyServer(ws.Server(), &server{svr})
_, err := ws.Start()
if err != nil {
panic(err)
}
return ws
}
type server struct {
svr *service.Service
}
var _ pb.SpyServer = &server{}
// Ping check dao health.
func (s *server) Ping(ctx context.Context, req *pb.PingReq) (*pb.PingReply, error) {
return &pb.PingReply{}, nil
}
// StatByID spy stat by id or mid.
func (s *server) StatByID(ctx context.Context, req *pb.StatByIDReq) (*pb.StatByIDReply, error) {
statistics, err := s.svr.StatByID(ctx, req.Mid, req.Id)
if err != nil {
return nil, err
}
reply := new(pb.StatByIDReply)
reply.DeepCopyFromStatistics(statistics)
return reply, nil
}
// StatByIDGroupEvent spy stat by id or mid.
func (s *server) StatByIDGroupEvent(ctx context.Context, req *pb.StatByIDGroupEventReq) (*pb.StatByIDGroupEventReply, error) {
statistics, err := s.svr.StatByIDGroupEvent(ctx, req.Mid, req.Id)
if err != nil {
return nil, err
}
reply := new(pb.StatByIDGroupEventReply)
reply.DeepCopyFromStatistics(statistics)
return reply, nil
}
// PurgeUser purge user info
func (s *server) PurgeUser(ctx context.Context, req *pb.PurgeUserReq) (*pb.PurgeUserReply, error) {
return &pb.PurgeUserReply{}, s.svr.PurgeUser(ctx, req.Mid, req.Action)
}
// HandleEvent handle spy-event.
func (s *server) HandleEvent(ctx context.Context, req *pb.HandleEventReq) (*pb.HandleEventReply, error) {
eventMsg := new(model.EventMessage)
req.DeepCopyAsIntoEventMessage(eventMsg)
return &pb.HandleEventReply{}, s.svr.HandleEvent(ctx, eventMsg)
}
// UserInfo get UserInfo by mid , from cache or db or generate.
func (s *server) UserInfo(ctx context.Context, req *pb.UserInfoReq) (*pb.UserInfoReply, error) {
ui, err := s.svr.UserInfo(ctx, req.Mid, req.Ip)
if err != nil {
return nil, err
}
reply := new(pb.UserInfoReply)
reply.DeepCopyFromUserInfo(ui)
return reply, nil
}
// UserInfoAsyn get UserInfo by mid , from cache or db or asyn generate.
func (s *server) UserInfoAsyn(ctx context.Context, req *pb.UserInfoAsynReq) (*pb.UserInfoAsynReply, error) {
ui, err := s.svr.UserInfoAsyn(ctx, req.Mid)
if err != nil {
return nil, err
}
reply := new(pb.UserInfoAsynReply)
reply.DeepCopyFromUserInfo(ui)
return reply, nil
}
// ReBuildPortrait reBuild user info.
func (s *server) ReBuildPortrait(ctx context.Context, req *pb.ReBuildPortraitReq) (*pb.ReBuildPortraitReply, error) {
return &pb.ReBuildPortraitReply{}, s.svr.ReBuildPortrait(ctx, req.Mid, req.Reason)
}
// UpdateUserScore update user score
func (s *server) UpdateUserScore(ctx context.Context, req *pb.UpdateUserScoreReq) (*pb.UpdateUserScoreReply, error) {
return &pb.UpdateUserScoreReply{}, s.svr.UpdateUserScore(ctx, req.Mid, req.Ip, req.Effect)
}
// RefreshBaseScore refresh base score.
func (s *server) RefreshBaseScore(ctx context.Context, req *pb.RefreshBaseScoreReq) (*pb.RefreshBaseScoreReply, error) {
argReset := new(model.ArgReset)
req.DeepCopyAsIntoArgReset(argReset)
return &pb.RefreshBaseScoreReply{}, s.svr.RefreshBaseScore(ctx, argReset)
}
// UpdateBaseScore update base score.
func (s *server) UpdateBaseScore(ctx context.Context, req *pb.UpdateBaseScoreReq) (*pb.UpdateBaseScoreReply, error) {
argReset := new(model.ArgReset)
req.DeepCopyAsIntoArgReset(argReset)
return &pb.UpdateBaseScoreReply{}, s.svr.UpdateBaseScore(ctx, argReset)
}
// UpdateEventScore update event score.
func (s *server) UpdateEventScore(ctx context.Context, req *pb.UpdateEventScoreReq) (*pb.UpdateEventScoreReply, error) {
argReset := new(model.ArgReset)
req.DeepCopyAsIntoArgReset(argReset)
return &pb.UpdateEventScoreReply{}, s.svr.UpdateEventScore(ctx, argReset)
}
// ClearReliveTimes clear times.
func (s *server) ClearReliveTimes(ctx context.Context, req *pb.ClearReliveTimesReq) (*pb.ClearReliveTimesReply, error) {
argReset := new(model.ArgReset)
req.DeepCopyAsIntoArgReset(argReset)
return &pb.ClearReliveTimesReply{}, s.svr.ClearReliveTimes(ctx, argReset)
}
// Info get user info by mid.
func (s *server) Info(ctx context.Context, req *pb.InfoReq) (*pb.InfoReply, error) {
ui, err := s.svr.Info(ctx, req.Mid)
if err != nil {
return nil, err
}
reply := new(pb.InfoReply)
reply.DeepCopyFromUserInfo(ui)
return reply, nil
}

View File

@@ -0,0 +1,40 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = [
"http.go",
"spy.go",
],
importpath = "go-common/app/service/main/spy/server/http",
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/ecode:go_default_library",
"//library/log:go_default_library",
"//library/net/http/blademaster:go_default_library",
"//library/net/http/blademaster/middleware/verify: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,58 @@
package http
import (
"net/http"
"go-common/app/service/main/spy/conf"
"go-common/app/service/main/spy/service"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/middleware/verify"
)
var (
spySvc *service.Service
verifyN *verify.Verify
)
// Init init http server.
func Init(c *conf.Config, s *service.Service) {
spySvc = s
verifyN = verify.New(nil)
// init inner router
engineInner := bm.DefaultServer(c.BM)
innerRouter(engineInner)
// init local server
if err := engineInner.Start(); err != nil {
log.Error("xhttp.Serve error(%v)", err)
panic(err)
}
}
// innerRouter init inner router.
func innerRouter(e *bm.Engine) {
// health check
e.Ping(ping)
e.Register(register)
//new defined api lists
group := e.Group("/x/internal/v1/spy", verifyN.Verify)
{
group.GET("/info", info)
group.GET("/purge", purgeUser)
group.POST("/purge2", purgeUser2)
group.GET("/stat", stat)
}
}
// ping check server ok.
func ping(c *bm.Context) {
if spySvc.Ping(c) != nil {
log.Error("spy-service service ping error")
c.AbortWithStatus(http.StatusServiceUnavailable)
}
}
// register check server ok.
func register(c *bm.Context) {
c.JSON(map[string]interface{}{}, nil)
}

View File

@@ -0,0 +1,105 @@
package http
import (
"encoding/json"
"strconv"
"go-common/app/service/main/spy/model"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
func info(c *bm.Context) {
var (
err error
mid int64
midStr = c.Request.Form.Get("mid")
)
if mid, err = strconv.ParseInt(midStr, 10, 64); err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
ui, err := spySvc.Info(c, mid)
if err != nil {
log.Error("spySvc.UserInfo(%d), ui(%v), err(%v)", mid, ui, err)
c.JSON(nil, ecode.ServerErr)
return
}
c.JSON(&model.UserScore{Mid: ui.Mid, Score: ui.Score}, nil)
}
func purgeUser(c *bm.Context) {
var (
err error
mid int64
params = c.Request.Form
midStr = params.Get("mid")
action = params.Get("modifiedAttr")
)
if mid, err = strconv.ParseInt(midStr, 10, 64); err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
if action == "" {
c.JSON(nil, ecode.RequestErr)
return
}
err = spySvc.PurgeUser(c, mid, action)
c.JSON(nil, err)
}
func purgeUser2(c *bm.Context) {
var (
err error
params = c.Request.Form
msg = params.Get("msg")
info = new(model.NotifyInfo)
)
if err = json.Unmarshal([]byte(msg), &info); err != nil {
log.Error("purgeUser2 (%s) json.Unmarshal error(%v)", msg, err)
c.JSON(nil, ecode.RequestErr)
return
}
if info == nil {
c.JSON(nil, ecode.RequestErr)
return
}
if info.Action == "" || info.Mid == 0 {
c.JSON(nil, ecode.RequestErr)
return
}
if err = spySvc.PurgeUser(c, info.Mid, info.Action); err != nil {
log.Error("purgeUser2 (%+v) error(%v)", info, err)
}
c.JSON(nil, err)
}
func stat(c *bm.Context) {
var (
err error
mid, id int64
params = c.Request.Form
midStr = params.Get("mid")
idStr = params.Get("id")
)
if mid, err = strconv.ParseInt(midStr, 10, 64); midStr != "" && err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
if id, err = strconv.ParseInt(idStr, 10, 64); idStr != "" && err != nil {
c.JSON(nil, ecode.RequestErr)
return
}
if id == 0 && mid == 0 {
c.JSON(nil, ecode.RequestErr)
return
}
stat, err := spySvc.StatByID(c, mid, id)
if err != nil {
log.Error("spySvc.StatByID err(%v)", err)
c.JSON(nil, ecode.ServerErr)
return
}
c.JSON(stat, nil)
}