Initial commit

This commit is contained in:
Donny
2019-04-22 20:46:32 +08:00
commit 49ab8aadd1
25441 changed files with 4055000 additions and 0 deletions

View File

@@ -0,0 +1,63 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_test",
"go_library",
)
go_test(
name = "go_default_test",
srcs = [
"auth_role_test.go",
"dao_test.go",
"httpclient_test.go",
"manager_test.go",
"reason_log_test.go",
],
embed = [":go_default_library"],
rundir = ".",
tags = ["automanaged"],
deps = [
"//app/admin/main/videoup/conf:go_default_library",
"//vendor/github.com/smartystreets/goconvey/convey:go_default_library",
],
)
go_library(
name = "go_default_library",
srcs = [
"auth_role.go",
"dao.go",
"httpclient.go",
"manager.go",
"reason_log.go",
"up.go",
],
importpath = "go-common/app/admin/main/videoup/dao/manager",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/admin/main/videoup/conf:go_default_library",
"//app/admin/main/videoup/model/manager:go_default_library",
"//library/database/sql:go_default_library",
"//library/log:go_default_library",
"//library/net/http/blademaster:go_default_library",
"//library/xstr:go_default_library",
"//vendor/github.com/pkg/errors: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,22 @@
package manager
import (
"context"
"database/sql"
"go-common/library/log"
)
const (
_getUserRoleSQL = "SELECT `role` FROM `auth_role` WHERE uid = ?"
)
// GetUserRole 用户角色
func (d *Dao) GetUserRole(c context.Context, uid int64) (role int8, err error) {
err = d.managerDB.QueryRow(c, _getUserRoleSQL, uid).Scan(&role)
if err != nil && err != sql.ErrNoRows {
log.Error("d.managerDB.Query error(%v)", err)
return
}
return role, nil
}

View File

@@ -0,0 +1,17 @@
package manager
import (
"context"
. "github.com/smartystreets/goconvey/convey"
"testing"
)
func Test_GetUserRole(t *testing.T) {
var (
err error
)
Convey("GetUserRole", t, WithDao(func(d *Dao) {
_, err = d.GetUserRole(context.Background(), 1)
So(err, ShouldBeNil)
}))
}

View File

@@ -0,0 +1,39 @@
package manager
import (
"context"
"go-common/app/admin/main/videoup/conf"
"go-common/library/database/sql"
bm "go-common/library/net/http/blademaster"
)
// Dao is redis dao.
type Dao struct {
c *conf.Config
// db
managerDB *sql.DB
httpClient *bm.Client
}
// New new a dao.
func New(c *conf.Config) (d *Dao) {
d = &Dao{
c: c,
managerDB: sql.NewMySQL(c.DB.Manager),
httpClient: bm.NewClient(c.HTTPClient.Read),
}
return d
}
// Close close.
func (d *Dao) Close() {
if d.managerDB != nil {
d.managerDB.Close()
}
}
// Ping ping cpdb
func (d *Dao) Ping(c context.Context) (err error) {
return d.managerDB.Ping(c)
}

View File

@@ -0,0 +1,50 @@
package manager
import (
"context"
"flag"
. "github.com/smartystreets/goconvey/convey"
"go-common/app/admin/main/videoup/conf"
"os"
"testing"
)
var (
d *Dao
)
func WithDao(f func(d *Dao)) func() {
return func() {
Reset(func() {})
f(d)
}
}
func TestPing(t *testing.T) {
Convey("Ping", t, WithDao(func(d *Dao) {
err := d.Ping(context.TODO())
So(err, ShouldBeNil)
}))
}
func TestMain(m *testing.M) {
if os.Getenv("DEPLOY_ENV") != "" {
flag.Set("app_id", "main.archive.videoup-admin")
flag.Set("conf_token", "gRSfeavV7kJdY9875Gf29pbd2wrdKZ1a")
flag.Set("tree_id", "2307")
flag.Set("conf_version", "docker-1")
flag.Set("deploy_env", "uat")
flag.Set("conf_host", "config.bilibili.co")
flag.Set("conf_path", "/tmp")
flag.Set("region", "sh")
flag.Set("zone", "sh001")
} else {
flag.Set("conf", "../../cmd/videoup-admin.toml")
}
flag.Parse()
if err := conf.Init(); err != nil {
panic(err)
}
d = New(conf.Conf)
os.Exit(m.Run())
}

View File

@@ -0,0 +1,95 @@
package manager
import (
"context"
"net/url"
"strings"
"go-common/library/log"
"go-common/library/xstr"
)
const (
_uidsURL = "/x/admin/manager/users/uids"
_unamesURL = "/x/admin/manager/users/unames"
)
// Unames get unames by uid
func (d *Dao) Unames(c context.Context, uids []int64) (res map[int64]string, err error) {
var (
param = url.Values{}
uidStr = xstr.JoinInts(uids)
unameURI = d.c.Host.Manager + _unamesURL
)
param.Set("uids", uidStr)
var httpRes struct {
Code int `json:"code"`
Data map[int64]string `json:"data"`
Message string `json:"message"`
}
err = d.httpClient.Get(c, unameURI, "", param, &httpRes)
if err != nil {
log.Error("d.client.Get(%s) error(%v)", unameURI+"?"+param.Encode(), err)
return
}
if httpRes.Code != 0 {
log.Error("url(%s) error(%v), code(%d), message(%s)", unameURI+"?"+param.Encode(), err, httpRes.Code, httpRes.Message)
}
res = httpRes.Data
return
}
// Uids get uids by unames
func (d *Dao) Uids(c context.Context, names []string) (res map[string]int64, err error) {
var (
param = url.Values{}
namesStr = strings.Join(names, ",")
uidURI = d.c.Host.Manager + _uidsURL
)
param.Set("unames", namesStr)
var httpRes struct {
Code int `json:"code"`
Data map[string]int64 `json:"data"`
Message string `json:"message"`
}
err = d.httpClient.Get(c, uidURI, "", param, &httpRes)
if err != nil {
log.Error("d.client.Get(%s) error(%v)", uidURI+"?"+param.Encode(), err)
return
}
if httpRes.Code != 0 {
log.Error("url(%s) error(%v), code(%d), message(%s)", uidURI+"?"+param.Encode(), err, httpRes.Code, httpRes.Message)
}
res = httpRes.Data
return
}
// GetUIDByName 获取uid
func (d *Dao) GetUIDByName(c context.Context, name string) (uid int64, err error) {
var res map[string]int64
if res, err = d.Uids(c, []string{name}); err != nil {
return
}
if uid, ok := res[name]; ok {
return uid, nil
}
return
}
// GetNameByUID 获取用户名
func (d *Dao) GetNameByUID(c context.Context, uids []int64) (mcases map[int64][]interface{}, err error) {
var res map[int64]string
if res, err = d.Unames(c, uids); err != nil {
return
}
mcases = make(map[int64][]interface{})
for uid, uname := range res {
mcases[uid] = []interface{}{uname}
}
return
}

View File

@@ -0,0 +1,27 @@
package manager
import (
"context"
. "github.com/smartystreets/goconvey/convey"
"testing"
)
func Test_GetUIDByName(t *testing.T) {
var (
err error
)
Convey("GetUIDByName", t, WithDao(func(d *Dao) {
_, err = d.GetUIDByName(context.Background(), "1111")
So(err, ShouldBeNil)
}))
}
func Test_GetNameByUID(t *testing.T) {
var (
err error
)
Convey("GetUIDByName", t, WithDao(func(d *Dao) {
_, err = d.GetNameByUID(context.Background(), []int64{1, 2})
So(err, ShouldBeNil)
}))
}

View File

@@ -0,0 +1,25 @@
package manager
import (
"context"
"go-common/app/admin/main/videoup/model/manager"
"go-common/library/log"
)
const (
_userInfoSQL = "SELECT id,username,nickname,state FROM user WHERE id = ?"
)
// User get manager user by id
func (d *Dao) User(c context.Context, id int64) (u *manager.User, err error) {
var (
row = d.managerDB.QueryRow(c, _userInfoSQL, id)
)
u = &manager.User{}
if err = row.Scan(&u.ID, &u.UserName, &u.NickName, &u.State); err != nil {
log.Error("row.Scan error(%v)", err)
return
}
return
}

View File

@@ -0,0 +1,14 @@
package manager
import (
"context"
"github.com/smartystreets/goconvey/convey"
"testing"
)
func Test_User(t *testing.T) {
convey.Convey("User", t, WithDao(func(d *Dao) {
_, err := d.User(context.TODO(), 1)
convey.So(err, convey.ShouldBeNil)
}))
}

View File

@@ -0,0 +1,22 @@
package manager
import (
"context"
"go-common/library/log"
"time"
)
const (
_inLogSQL = "INSERT INTO reason_log (oid, type, category_id, reason_id, uid, typeid, ctime, mtime) VALUES (?,?,?,?,?,?,?,?)"
)
// AddReasonLog add a reason log
func (d *Dao) AddReasonLog(c context.Context, oid int64, tp int8, cateID int64, rid int64, uid int64, tid int16, ctime, mtime time.Time) (rows int64, err error) {
res, err := d.managerDB.Exec(c, _inLogSQL, oid, tp, cateID, rid, uid, tid, ctime, mtime)
if err != nil {
log.Error("d.AddReasonLog.Exec error(%v)", err)
return
}
rows, err = res.RowsAffected()
return
}

View File

@@ -0,0 +1,15 @@
package manager
import (
"context"
"github.com/smartystreets/goconvey/convey"
"testing"
"time"
)
func Test_AddReasonLog(t *testing.T) {
convey.Convey("AddReasonLog", t, WithDao(func(d *Dao) {
_, err := d.AddReasonLog(context.TODO(), 0, 0, 0, 0, 0, 0, time.Now(), time.Now())
convey.So(err, convey.ShouldBeNil)
}))
}

View File

@@ -0,0 +1,33 @@
package manager
import (
"context"
"github.com/pkg/errors"
"go-common/app/admin/main/videoup/model/manager"
"go-common/library/log"
"net/url"
)
const (
_upGroupURI = "/x/internal/uper/group/get"
)
// UpGroups get all up groups
func (d *Dao) UpGroups(c context.Context) (groups map[int64]*manager.UpGroup, err error) {
groups = make(map[int64]*manager.UpGroup)
params := url.Values{}
params.Set("state", "1")
var res *manager.UpGroupData
if err = d.httpClient.Get(c, d.c.Host.API+_upGroupURI, "", params, &res); err != nil {
log.Error("d.UpGroups() error(%v)", err)
return
}
if res == nil {
err = errors.New("error when get up groups")
return
}
for _, v := range res.Data {
groups[v.ID] = v
}
return
}