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,54 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_test",
"go_library",
)
go_test(
name = "go_default_test",
srcs = [
"relations_test.go",
"service_test.go",
],
embed = [":go_default_library"],
rundir = ".",
tags = ["automanaged"],
deps = [
"//app/admin/main/relation/conf:go_default_library",
"//app/admin/main/relation/model:go_default_library",
"//vendor/github.com/smartystreets/goconvey/convey:go_default_library",
],
)
go_library(
name = "go_default_library",
srcs = [
"relation_log.go",
"relations.go",
"service.go",
],
importpath = "go-common/app/admin/main/relation/service",
tags = ["automanaged"],
deps = [
"//app/admin/main/relation/conf:go_default_library",
"//app/admin/main/relation/dao:go_default_library",
"//app/admin/main/relation/model:go_default_library",
"//app/service/main/relation/api: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,40 @@
package service
import (
"context"
"time"
"go-common/app/admin/main/relation/model"
)
// RelationLog is.
func (s *Service) RelationLog(ctx context.Context, mid, fid int64, from time.Time, to time.Time) (model.RelationLogList, error) {
logs, err := s.dao.RelationLogs(ctx, mid, fid, from, to)
if err != nil {
return nil, err
}
// order log by mtime with desc
logs.OrderByMTime(true)
uids := make([]int64, 0, len(logs)*2)
for _, l := range logs {
uids = append(uids, l.Mid)
uids = append(uids, l.Fid)
}
uinfos, err := s.dao.RPCInfos(ctx, uids)
if err != nil {
return nil, err
}
for _, l := range logs {
if mi, ok := uinfos[l.Mid]; ok {
l.MemberName = mi.Name
}
}
for _, l := range logs {
if fi, ok := uinfos[l.Fid]; ok {
l.FollowingName = fi.Name
}
}
return logs, nil
}

View File

@@ -0,0 +1,115 @@
package service
import (
"context"
"go-common/app/admin/main/relation/model"
relationPB "go-common/app/service/main/relation/api"
)
// Followers is.
func (s *Service) Followers(ctx context.Context, param *model.FollowersParam) (*model.FollowersListPage, error) {
list, err := s.dao.Followers(ctx, param.Fid, param.Mid)
if err != nil {
return nil, err
}
list.OrderByMTime(param.Desc())
from, err := model.ParseTime(param.MTimeFrom)
if err == nil {
list = list.FilterMTimeFrom(from)
}
to, err := model.ParseTime(param.MTimeTo)
if err == nil {
list = list.FilterMTimeTo(to)
}
plist := list.Paginate(param.PS*(param.PN-1), param.PS)
flist := plist.FollowersList()
uids := make([]int64, 0, len(flist)*2)
for _, r := range flist {
uids = append(uids, r.Mid)
uids = append(uids, r.Fid)
}
uinfos, err := s.dao.RPCInfos(ctx, uids)
if err != nil {
return nil, err
}
for _, r := range flist {
if mi, ok := uinfos[r.Mid]; ok {
r.MemberName = mi.Name
}
}
for _, r := range flist {
if fi, ok := uinfos[r.Fid]; ok {
r.FollowerName = fi.Name
}
}
page := &model.FollowersListPage{}
page.Sort = param.Sort
page.Order = param.Order
page.List = flist
page.TotalCount = len(list)
page.PN = param.PN
page.PS = param.PS
return page, nil
}
// Followings is.
func (s *Service) Followings(ctx context.Context, param *model.FollowingsParam) (*model.FollowingsListPage, error) {
list, err := s.dao.Followings(ctx, param.Mid, param.Fid)
if err != nil {
return nil, err
}
list.OrderByMTime(param.Desc())
from, err := model.ParseTime(param.MTimeFrom)
if err == nil {
list = list.FilterMTimeFrom(from)
}
to, err := model.ParseTime(param.MTimeTo)
if err == nil {
list = list.FilterMTimeTo(to)
}
plist := list.Paginate(param.PS*(param.PN-1), param.PS)
flist := plist.FollowingsList()
uids := make([]int64, 0, len(flist)*2)
for _, r := range flist {
uids = append(uids, r.Mid)
uids = append(uids, r.Fid)
}
minfos, err := s.dao.RPCInfos(ctx, uids)
if err != nil {
return nil, err
}
for _, r := range flist {
if mi, ok := minfos[r.Mid]; ok {
r.MemberName = mi.Name
}
}
for _, r := range flist {
if fi, ok := minfos[r.Fid]; ok {
r.FollowingName = fi.Name
}
}
page := &model.FollowingsListPage{}
page.Sort = param.Sort
page.Order = param.Order
page.List = flist
page.TotalCount = len(list)
page.PN = param.PN
page.PS = param.PS
return page, nil
}
// Stat is
func (s *Service) Stat(ctx context.Context, param *model.ArgMid) (*relationPB.StatReply, error) {
return s.dao.Stat(ctx, param.Mid)
}
// Stats is
func (s *Service) Stats(ctx context.Context, param *model.ArgMids) (map[int64]*relationPB.StatReply, error) {
return s.dao.Stats(ctx, param.Mids)
}

View File

@@ -0,0 +1,52 @@
package service
import (
"context"
"testing"
"go-common/app/admin/main/relation/model"
"github.com/smartystreets/goconvey/convey"
)
func TestFollowers(t *testing.T) {
convey.Convey("Followers", t, func() {
rl, err := s.Followers(context.TODO(), &model.FollowersParam{
Fid: 1,
Mid: 2,
})
convey.So(err, convey.ShouldBeNil)
convey.So(rl, convey.ShouldNotBeNil)
})
}
func TestFollowings(t *testing.T) {
convey.Convey("Followings", t, func() {
rl, err := s.Followings(context.TODO(), &model.FollowingsParam{
Fid: 1,
Mid: 2,
})
convey.So(err, convey.ShouldBeNil)
convey.So(rl, convey.ShouldNotBeNil)
})
}
func TestStat(t *testing.T) {
convey.Convey("stat", t, func() {
rl, err := s.Stat(context.TODO(), &model.ArgMid{
Mid: 2,
})
convey.So(err, convey.ShouldBeNil)
convey.So(rl, convey.ShouldNotBeNil)
})
}
func TestStats(t *testing.T) {
convey.Convey("stats", t, func() {
rl, err := s.Stats(context.TODO(), &model.ArgMids{
Mids: []int64{2, 3},
})
convey.So(err, convey.ShouldBeNil)
convey.So(rl, convey.ShouldNotBeNil)
})
}

View File

@@ -0,0 +1,33 @@
package service
import (
"context"
"go-common/app/admin/main/relation/conf"
"go-common/app/admin/main/relation/dao"
)
// Service struct
type Service struct {
c *conf.Config
dao *dao.Dao
}
// New init
func New(c *conf.Config) (s *Service) {
s = &Service{
c: c,
dao: dao.New(c),
}
return s
}
// Ping Service
func (s *Service) Ping(c context.Context) (err error) {
return s.dao.Ping(c)
}
// Close Service
func (s *Service) Close() {
s.dao.Close()
}

View File

@@ -0,0 +1,18 @@
package service
import (
"flag"
"go-common/app/admin/main/relation/conf"
)
var s *Service
func init() {
flag.Parse()
if err := conf.Init(); err != nil {
panic(err)
}
s = New(conf.Conf)
}