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,59 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_test",
"go_library",
)
go_test(
name = "go_default_test",
srcs = ["rpc_test.go"],
embed = [":go_default_library"],
rundir = ".",
tags = ["automanaged"],
deps = [
"//app/service/main/member/conf:go_default_library",
"//app/service/main/member/model:go_default_library",
"//app/service/main/member/service:go_default_library",
"//vendor/github.com/smartystreets/goconvey/convey:go_default_library",
],
)
go_library(
name = "go_default_library",
srcs = [
"block.go",
"member.go",
"moral.go",
"property_review.go",
"realname.go",
"rpc.go",
],
importpath = "go-common/app/service/main/member/server/gorpc",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/service/main/member/conf:go_default_library",
"//app/service/main/member/model:go_default_library",
"//app/service/main/member/model/block:go_default_library",
"//app/service/main/member/service:go_default_library",
"//app/service/main/member/service/block: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,37 @@
package gorpc
import (
rpcmodel "go-common/app/service/main/member/model/block"
"go-common/library/net/rpc/context"
)
// BlockInfo is
func (r *RPC) BlockInfo(c context.Context, arg *rpcmodel.RPCArgInfo, res *rpcmodel.RPCResInfo) (err error) {
var (
blockInfos []*rpcmodel.BlockInfo
)
if blockInfos, err = r.block.Infos(c, []int64{arg.MID}); err != nil {
return
}
if len(blockInfos) < 1 {
res.Parse(r.block.DefaultUser(arg.MID))
}
res.Parse(blockInfos[0])
return
}
// BlockBatchInfo is
func (r *RPC) BlockBatchInfo(c context.Context, arg *rpcmodel.RPCArgBatchInfo, res *[]*rpcmodel.RPCResInfo) (err error) {
var (
blockInfos []*rpcmodel.BlockInfo
)
if blockInfos, err = r.block.Infos(c, arg.MIDs); err != nil {
return
}
for _, info := range blockInfos {
r := &rpcmodel.RPCResInfo{}
r.Parse(info)
*res = append(*res, r)
}
return
}

View File

@@ -0,0 +1,99 @@
package gorpc
import (
"go-common/app/service/main/member/model"
"go-common/library/net/rpc/context"
)
// Base get user base info.
func (r *RPC) Base(c context.Context, arg *model.ArgMemberMid, res *model.BaseInfo) (err error) {
var v *model.BaseInfo
if v, err = r.s.BaseInfo(c, arg.Mid); err == nil && res != nil {
*res = *v
}
return
}
// Bases get batch user base info.
func (r *RPC) Bases(c context.Context, arg *model.ArgMemberMids, res *map[int64]*model.BaseInfo) (err error) {
*res, err = r.s.BatchBaseInfo(c, arg.Mids)
return
}
// Member get member info.
func (r *RPC) Member(c context.Context, arg *model.ArgMemberMid, res *model.Member) (err error) {
var v *model.Member
if v, err = r.s.Member(c, arg.Mid); err == nil && res != nil {
*res = *v
}
return
}
// Members get batch member info.
func (r *RPC) Members(c context.Context, arg *model.ArgMemberMids, res *map[int64]*model.Member) (err error) {
*res, err = r.s.Members(c, arg.Mids)
return
}
// NickUpdated get nickUpdated.
func (r *RPC) NickUpdated(c context.Context, arg *model.ArgMemberMid, res *bool) (err error) {
*res, err = r.s.NickUpdated(c, arg.Mid)
return
}
// SetNickUpdated set nickUpdated.
func (r *RPC) SetNickUpdated(c context.Context, arg *model.ArgMemberMid, res *struct{}) (err error) {
err = r.s.SetNickUpdated(c, arg.Mid)
return
}
// SetOfficialDoc set official doc.
func (r *RPC) SetOfficialDoc(c context.Context, arg *model.ArgOfficialDoc, res *struct{}) (err error) {
err = r.s.SetOfficialDoc(c, arg)
return
}
// SetSex set sex.
func (r *RPC) SetSex(c context.Context, arg *model.ArgUpdateSex, res *struct{}) (err error) {
err = r.s.SetSex(c, arg.Mid, arg.Sex)
return
}
// SetName set name.
func (r *RPC) SetName(c context.Context, arg *model.ArgUpdateUname, res *struct{}) (err error) {
err = r.s.SetName(c, arg.Mid, arg.Name)
return
}
// SetFace set face.
func (r *RPC) SetFace(c context.Context, arg *model.ArgUpdateFace, res *struct{}) (err error) {
err = r.s.SetFace(c, arg.Mid, arg.Face)
return
}
// SetRank set rank.
func (r *RPC) SetRank(c context.Context, arg *model.ArgUpdateRank, res *struct{}) (err error) {
err = r.s.SetRank(c, arg.Mid, arg.Rank)
return
}
// SetBirthday set birthday.
func (r *RPC) SetBirthday(c context.Context, arg *model.ArgUpdateBirthday, res *struct{}) (err error) {
err = r.s.SetBirthday(c, arg.Mid, arg.Birthday)
return
}
// SetSign set sign.
func (r *RPC) SetSign(c context.Context, arg *model.ArgUpdateSign, res *struct{}) (err error) {
err = r.s.SetSign(c, arg.Mid, arg.Sign)
return
}
// OfficialDoc is.
func (r *RPC) OfficialDoc(c context.Context, arg *model.ArgMid, res *model.OfficialDoc) (err error) {
var od *model.OfficialDoc
if od, err = r.s.OfficialDoc(c, arg.Mid); err == nil && od != nil {
*res = *od
}
return
}

View File

@@ -0,0 +1,32 @@
package gorpc
import (
"go-common/app/service/main/member/model"
"go-common/library/net/rpc/context"
)
// Moral get user moral.
func (r *RPC) Moral(c context.Context, arg *model.ArgMemberMid, res *model.Moral) (err error) {
var v *model.Moral
if v, err = r.s.Moral(c, arg.Mid); err == nil && res != nil {
*res = *v
}
return
}
// MoralLog get user moral log.
func (r *RPC) MoralLog(c context.Context, arg *model.ArgMemberMid, res *[]*model.UserLog) (err error) {
*res, err = r.s.MoralLog(c, arg.Mid)
return
}
// AddMoral add moral.
func (r *RPC) AddMoral(c context.Context, arg *model.ArgUpdateMoral, res *struct{}) (err error) {
return r.s.UpdateMoral(c, arg)
}
// BatchAddMoral batch add moral.
func (r *RPC) BatchAddMoral(c context.Context, arg *model.ArgUpdateMorals, res *map[int64]int64) (err error) {
*res, err = r.s.UpdateMorals(c, arg)
return
}

View File

@@ -0,0 +1,26 @@
package gorpc
import (
"go-common/app/service/main/member/model"
"go-common/library/net/rpc/context"
)
// AddUserMonitor is add user into monitor
func (r *RPC) AddUserMonitor(ctx context.Context, arg *model.ArgAddUserMonitor, res *struct{}) error {
return r.s.AddUserMonitor(ctx, arg)
}
// IsInMonitor check user is in monitor
func (r *RPC) IsInMonitor(ctx context.Context, arg *model.ArgMid, res *bool) error {
isInMonitor, err := r.s.IsInMonitor(ctx, arg)
if err != nil {
return err
}
*res = isInMonitor
return nil
}
// AddPropertyReview add user property update review.
func (r *RPC) AddPropertyReview(ctx context.Context, arg *model.ArgAddPropertyReview, res *struct{}) error {
return r.s.AddPropertyReview(ctx, arg)
}

View File

@@ -0,0 +1,67 @@
package gorpc
import (
"go-common/app/service/main/member/model"
"go-common/library/net/rpc/context"
)
// RealnameStatus is
func (r *RPC) RealnameStatus(c context.Context, arg *model.ArgMemberMid, res *model.RealnameStatus) (err error) {
var v model.RealnameStatus
if v, err = r.s.RealnameStatus(c, arg.Mid); err == nil && res != nil {
*res = v
}
return
}
// RealnameApplyStatus is
func (r *RPC) RealnameApplyStatus(c context.Context, arg *model.ArgMemberMid, res *model.RealnameApplyStatusInfo) (err error) {
var v *model.RealnameApplyStatusInfo
if v, err = r.s.RealnameApplyStatus(c, arg.Mid); err == nil && v != nil {
*res = *v
}
return
}
// RealnameTelCapture is
func (r *RPC) RealnameTelCapture(c context.Context, arg *model.ArgMemberMid, res *struct{}) (err error) {
_, err = r.s.RealnameTelCapture(c, arg.Mid)
return
}
// RealnameApply is
func (r *RPC) RealnameApply(c context.Context, arg *model.ArgRealnameApply, res *struct{}) (err error) {
err = r.s.RealnameApply(c, arg.MID, arg.CaptureCode, arg.Realname, arg.CardType, arg.CardCode, arg.Country, arg.HandIMGToken, arg.FrontIMGToken, arg.BackIMGToken)
return
}
// RealnameAlipayApply commit a alipay realname apply
func (r *RPC) RealnameAlipayApply(c context.Context, arg *model.ArgRealnameAlipayApply, res *struct{}) (err error) {
err = r.s.RealnameAlipayApply(c, arg.MID, arg.CaptureCode, arg.Realname, arg.CardCode, arg.IMGToken, arg.Bizno)
return
}
// RealnameAlipayConfirm confirm a alipay realname apply
func (r *RPC) RealnameAlipayConfirm(c context.Context, arg *model.ArgRealnameAlipayConfirm, res *struct{}) (err error) {
err = r.s.RealnameAlipayConfirm(c, arg.MID, arg.Pass, arg.Reason)
return
}
// RealnameAlipayBizno get alipay realname certify bizno by mid
func (r *RPC) RealnameAlipayBizno(c context.Context, arg *model.ArgMemberMid, res *model.RealnameAlipayInfo) (err error) {
var bizno string
if bizno, err = r.s.RealnameAlipayBizno(c, arg.Mid); err == nil {
(*res).Bizno = bizno
}
return
}
// RealnameDetail detail about realname by mid
func (r *RPC) RealnameDetail(ctx context.Context, arg *model.ArgMemberMid, res *model.RealnameDetail) error {
detail, err := r.s.RealnameDetail(ctx, arg.Mid)
if err != nil {
return err
}
*res = *detail
return nil
}

View File

@@ -0,0 +1,75 @@
package gorpc
import (
"go-common/app/service/main/member/conf"
"go-common/app/service/main/member/model"
"go-common/app/service/main/member/service"
"go-common/app/service/main/member/service/block"
"go-common/library/net/rpc"
"go-common/library/net/rpc/context"
)
// RPC is.
type RPC struct {
s *service.Service
block *block.Service
}
// New new rpc server.
func New(c *conf.Config, s *service.Service) *rpc.Server {
r := &RPC{
s: s,
block: s.BlockImpl(),
}
svr := rpc.NewServer(c.RPCServer)
if err := svr.Register(r); err != nil {
panic(err)
}
return svr
}
// Ping check connection success.
func (r *RPC) Ping(c context.Context, arg *struct{}, res *struct{}) (err error) {
return
}
// --- exp --- //
// Exp get user exp.
func (r *RPC) Exp(c context.Context, arg *model.ArgMid2, res *model.LevelInfo) (err error) {
v, err := r.s.Exp(c, arg.Mid)
if err == nil && v != nil {
*res = *v
}
return
}
// Level get user exp.
func (r *RPC) Level(c context.Context, arg *model.ArgMid2, res *model.LevelInfo) (err error) {
v, err := r.s.Level(c, arg.Mid)
if err == nil && v != nil {
*res = *v
}
return
}
// UpdateExp user exp.
func (r *RPC) UpdateExp(c context.Context, arg *model.ArgAddExp, res *struct{}) (err error) {
err = r.s.UpdateExp(c, arg)
return
}
// Log get user exp log.
func (r *RPC) Log(c context.Context, arg *model.ArgMid2, res *[]*model.UserLog) (err error) {
*res, err = r.s.ExpLog(c, arg.Mid, arg.RealIP)
return
}
// Stat get user exp stat.
func (r *RPC) Stat(c context.Context, arg *model.ArgMid2, res *model.ExpStat) (err error) {
v, err := r.s.Stat(c, arg.Mid)
if err == nil && v != nil {
*res = *v
}
return
}

View File

@@ -0,0 +1,89 @@
package gorpc
import (
"flag"
"net/rpc"
"testing"
"time"
"go-common/app/service/main/member/conf"
"go-common/app/service/main/member/model"
"go-common/app/service/main/member/service"
. "github.com/smartystreets/goconvey/convey"
)
func init() {
flag.Set("conf", "../../cmd/member-service-example.toml")
startService()
}
const (
addr = "127.0.0.1:6689"
_testPing = "RPC.Ping"
)
var (
_noArg = &struct{}{}
svr *service.Service
client *rpc.Client
)
func startService() {
if err := conf.Init(); err != nil {
panic(err)
}
svr = service.New(conf.Conf)
New(conf.Conf, svr)
time.Sleep(time.Second * 3)
var err error
client, err = rpc.Dial("tcp", addr)
if err != nil {
panic(err)
}
}
func TestAccountRpc(t *testing.T) {
Convey("ping", t, func() {
err := client.Call(_testPing, &_noArg, &_noArg)
So(err, ShouldBeNil)
})
}
func TestExp(t *testing.T) {
Convey("update", t, func() {
err := client.Call("RPC.UpdateExp", &model.ArgAddExp{
Mid: 1,
Count: 2,
Reason: "test",
Operate: "other",
IP: "111",
}, &_noArg)
So(err, ShouldBeNil)
})
Convey("exp", t, func() {
res := new(model.LevelInfo)
err := client.Call("RPC.Exp", &model.ArgMid{Mid: 1}, res)
So(err, ShouldBeNil)
So(res.NextExp, ShouldNotEqual, 0)
})
}
func TestLevel(t *testing.T) {
Convey("level", t, func() {
res := new(model.LevelInfo)
err := client.Call("RPC.Level", &model.ArgMid{
Mid: 1,
}, res)
So(err, ShouldNotBeNil)
So(res.NextExp, ShouldNotEqual, 0)
})
}
func TestLog(t *testing.T) {
Convey("log", t, func() {
var res []*model.UserLog
err := client.Call("RPC.Log", &model.ArgMid{Mid: 1}, &res)
So(err, ShouldNotBeNil)
})
}