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,39 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = [
"dao.go",
"roomAdmin.go",
],
importpath = "go-common/app/interface/live/web-room/dao",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/interface/live/web-room/api/http/v1:go_default_library",
"//app/interface/live/web-room/conf:go_default_library",
"//app/service/live/xuser/api/grpc/v1:go_default_library",
"//app/service/main/account/model:go_default_library",
"//app/service/main/account/rpc/client:go_default_library",
"//library/log: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 dao
import (
"context"
accrpc "go-common/app/service/main/account/rpc/client"
"go-common/app/interface/live/web-room/conf"
"go-common/app/service/live/xuser/api/grpc/v1"
)
// Dao dao
type Dao struct {
c *conf.Config
RoomAdminAPI v1.RoomAdminClient
acc *accrpc.Service3
}
// New init mysql db
func New(c *conf.Config) (dao *Dao) {
roomAdminClient, err := v1.NewXuserRoomAdminClient(conf.Conf.XRoomAdmin)
if err != nil {
panic(err)
}
dao = &Dao{
c: c,
RoomAdminAPI: roomAdminClient,
acc: accrpc.New3(c.AccountRPC),
}
return
}
// Close close the resource.
func (d *Dao) Close() {
}
// Ping dao ping
func (d *Dao) Ping(c context.Context) error {
// TODO: if you need use mc,redis, please add
return nil
}

View File

@@ -0,0 +1,101 @@
package dao
import (
"context"
v1pb "go-common/app/interface/live/web-room/api/http/v1"
"go-common/app/service/live/xuser/api/grpc/v1"
account "go-common/app/service/main/account/model"
"go-common/library/log"
"math"
)
// GetByRoomIDPage get roomadmin list by roomid.
func (d *Dao) GetByRoomIDPage(c context.Context, roomID int64, page int64, pageSize int64) (resp *v1pb.RoomAdminGetByRoomResp, err error) {
resp = &v1pb.RoomAdminGetByRoomResp{}
resp.Page = &v1pb.RoomAdminGetByRoomResp_Page{
Page: page,
PageSize: pageSize,
TotalPage: 1,
TotalCount: 0,
}
ret, err := d.RoomAdminAPI.GetByRoom(c, &v1.RoomAdminGetByRoomReq{
Roomid: roomID,
})
log.Info("call GetByAnchor mid(%v) page (%v) ret(%v)", roomID, page, ret)
if err != nil {
log.Error("call GetByAnchor mid(%v) page (%v) error(%v)", roomID, page, err)
return
}
if ret == nil || ret.Data == nil {
return
}
mids, _ := d.getUidsFromAdmins(c, ret.Data)
dataLen := int64(len(mids))
d.setPager(dataLen, pageSize, page, resp.Page)
begin, end := d.getRange(pageSize, page, dataLen)
args := &account.ArgMids{Mids: mids[begin:end]}
accData, err := d.acc.Infos3(c, args)
if err != nil {
log.Error("call account.Infos3(%v) error(%v)", args, err)
return resp, err
}
for _, v := range ret.Data[begin:end] {
item := &v1pb.RoomAdminGetByRoomResp_Data{
Uid: v.Uid,
Ctime: v.Ctime,
}
if _, ok := accData[item.Uid]; ok {
item.Face = accData[item.Uid].Face
item.Uname = accData[item.Uid].Name
} else {
log.Error("没有这个人的用户信息 uid(%v) data(%v)", item.Uid, accData)
}
resp.Data = append(resp.Data, item)
}
return
}
// getAnchorUidsFromAdmins .
// 根据批量房管获取对应主播的房间号和UID
func (d *Dao) getUidsFromAdmins(c context.Context, admins []*v1.RoomAdminGetByRoomResp_Data) (uids []int64, err error) {
if len(admins) == 0 {
return
}
for _, r := range admins {
uids = append(uids, r.Uid)
}
return
}
// pageSize, page, dataLen
func (d *Dao) getRange(pageSize int64, page int64, dataLen int64) (begin int64, end int64) {
begin = (page - 1) * pageSize
end = page * pageSize
if end > dataLen {
end = dataLen
}
if begin > end {
begin = end
}
return
}
func (d *Dao) setPager(dataLen int64, pageSize int64, page int64, pager *v1pb.RoomAdminGetByRoomResp_Page) {
pager.Page = page
pager.TotalCount = dataLen
pager.TotalPage = int64(math.Ceil(float64(dataLen) / float64(pageSize)))
pager.PageSize = pageSize
}