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,56 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = [
"dao.go",
"fansMedal.go",
"mainAccount.go",
"mainFilter.go",
"relation.go",
"resource.go",
"room.go",
"user.go",
],
importpath = "go-common/app/interface/live/app-ucenter/dao",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/interface/live/app-ucenter/conf:go_default_library",
"//app/service/live/fans_medal/api/liverpc:go_default_library",
"//app/service/live/fans_medal/api/liverpc/v1:go_default_library",
"//app/service/live/relation/api/liverpc:go_default_library",
"//app/service/live/relation/api/liverpc/v1:go_default_library",
"//app/service/live/resource/api/grpc/v1:go_default_library",
"//app/service/live/room/api/liverpc:go_default_library",
"//app/service/live/room/api/liverpc/v1:go_default_library",
"//app/service/live/user/api/liverpc:go_default_library",
"//app/service/live/user/api/liverpc/v3:go_default_library",
"//app/service/main/member/api:go_default_library",
"//library/ecode:go_default_library",
"//library/log:go_default_library",
"//library/net/http/blademaster:go_default_library",
"//library/net/metadata:go_default_library",
"//library/net/rpc/liverpc: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,69 @@
package dao
import (
"context"
"go-common/app/interface/live/app-ucenter/conf"
fans_medal_api "go-common/app/service/live/fans_medal/api/liverpc"
relation_api "go-common/app/service/live/relation/api/liverpc"
resource_cli "go-common/app/service/live/resource/api/grpc/v1"
room_api "go-common/app/service/live/room/api/liverpc"
user_api "go-common/app/service/live/user/api/liverpc"
member_cli "go-common/app/service/main/member/api"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/rpc/liverpc"
)
// Dao dao
type Dao struct {
c *conf.Config
RoomApi *room_api.Client
UserApi *user_api.Client
RelationApi *relation_api.Client
FansMedalApi *fans_medal_api.Client
memberCli member_cli.MemberClient
titansCli resource_cli.TitansClient
HttpCli *bm.Client
}
// New init mysql db
func New(c *conf.Config) (dao *Dao) {
dao = &Dao{
c: c,
RoomApi: room_api.New(getConf("room")),
UserApi: user_api.New(getConf("user")),
RelationApi: relation_api.New(getConf("relation")),
FansMedalApi: fans_medal_api.New(getConf("fans_medal")),
HttpCli: bm.NewClient(c.HttpClient),
}
MemberCli, err := member_cli.NewClient(c.GrpcCli)
if err != nil {
panic(err)
}
dao.memberCli = MemberCli
TitansCli, errTitans := resource_cli.NewClient(c.GrpcCli)
if errTitans != nil {
panic(err)
}
dao.titansCli = TitansCli
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
}
func getConf(appName string) *liverpc.ClientConfig {
c := conf.Conf.LiveRpc
if c != nil {
return c[appName]
}
return nil
}

View File

@@ -0,0 +1,30 @@
package dao
import (
"context"
"go-common/app/service/live/fans_medal/api/liverpc/v1"
"go-common/library/log"
)
//OpenFansMealLevel 开启粉丝勋章的主播等级
const OpenFansMealLevel = 10
//GetFansMedalInfo 获取粉丝勋章信息
func (d *Dao) GetFansMedalInfo(c context.Context, uid int64) (resp *v1.MedalQueryResp_Data, err error) {
reply, err := d.FansMedalApi.V1Medal.Query(c, &v1.MedalQueryReq{Uid: uid, Source: 1})
if err != nil {
log.Error("fansMedal_getFansMedalInfo_error:%v", err)
return
}
if reply.Code != 0 {
log.Error("fansMedal_getFansMedalInfo_error:%d,%s,%v", reply.Code, reply.Msg, reply.Data)
return
}
log.Info("fansMedal_getFansMedalInfo:%d,%s,$v", reply.Code, reply.Msg, reply.Data)
if reply.Data.IsNull {
resp = nil
}
resp = reply.Data
return
}

View File

@@ -0,0 +1,20 @@
package dao
import (
"context"
v12 "go-common/app/service/main/member/api"
"go-common/library/log"
)
// GetIdentityStatus 获取身份申请信息
func (d *Dao) GetIdentityStatus(c context.Context, mid int64) (resp int8, err error) {
reply, err := d.memberCli.RealnameApplyStatus(c, &v12.MemberMidReq{Mid: mid})
if err != nil {
log.Error("main_member_GetIdentityStatus_error:%v", err)
return
}
log.Info("main_member_GetIdentityStatus:%v", reply)
resp = reply.Status
return
}

View File

@@ -0,0 +1,90 @@
package dao
import (
"context"
"net/url"
"strconv"
"time"
"go-common/app/interface/live/app-ucenter/conf"
"go-common/app/service/live/room/api/liverpc/v1"
"go-common/library/ecode"
"go-common/library/log"
"go-common/library/net/metadata"
)
//FILTER_MPOST_URL 主站屏蔽词url
const FILTER_MPOST_URL = "http://api.bilibili.co/x/internal/filter/mpost"
//CheckMsgIsLegal ...
//area值:"live_danmu";"live_biaoti";"live_tag";"live_jianjie",;"live_xuyuanping"
func (d *Dao) CheckMsgIsLegal(c context.Context, msg string, area string, roomId int64) (resp bool, err error) {
if msg == "" || area == "" {
log.Error("checkMsgIsLegal_params_error:msg=%s;area=%s", msg, area)
return
}
uid, _ := metadata.Value(c, metadata.Mid).(int64)
filterReply, err := d.FilterSite(c, msg, area)
if err != nil {
err = ecode.CallMainFilterError
return
}
areaMap := map[string]int{"live_biaoti": 2, "live_tag": 3, "live_jianjie": 4, "live_xuyuanping": 5}
historyData := &v1.RoomMngSaveHistoryReq_List{}
historyDatas := &v1.RoomMngSaveHistoryReq{}
resp = false
for _, filterInfo := range filterReply {
level := filterInfo.Level
hit := filterInfo.Hit
msg := filterInfo.Msg
if level >= 20 {
resp = true
}
if roomId > 0 && level == 15 && hit != nil && areaMap[area] > 0 {
historyData.Area = int64(areaMap[area])
historyData.Uid = uid
historyData.Roomid = roomId
historyData.Content = msg
historyData.Status = 0
historyData.Oname = ""
}
historyDatas.List = append(historyDatas.List, historyData)
}
//保存命中审核的数据
d.RoomApi.V1RoomMng.SaveHistory(c, historyDatas)
return
}
type mpostData struct {
Level int `json:"level"`
Limit int `json:"limit"`
Hit map[string]interface{} `json:"hit"`
Msg string `json:"msg"`
}
//FilterSite 主站12月初grpc接口上线可以替换
func (d *Dao) FilterSite(c context.Context, msg string, area string) (resp []*mpostData, err error) {
var (
params = url.Values{}
ip = metadata.String(c, metadata.RemoteIP)
)
params.Set("appkey", conf.APPKey)
params.Set("msg", msg)
params.Set("ts", strconv.FormatInt(time.Now().Unix(), 10))
params.Set("area", area)
var res struct {
Code int `json:"code"`
Msg string `json:"msg"`
Data []*mpostData `json:"data"`
}
if d.HttpCli.Post(c, FILTER_MPOST_URL, ip, params, &res); err != nil {
log.Error("filterSite:%v;params:%v;code:%d;msg:%s", err, params, res.Code, res.Msg)
return
}
if res.Code != 0 {
log.Error("filterSite:%v;code:%d;msg:%s", err, res.Code, res.Msg)
}
//接入sla
resp = res.Data
return
}

View File

@@ -0,0 +1,32 @@
package dao
import (
"context"
"github.com/pkg/errors"
"go-common/app/service/live/relation/api/liverpc/v1"
"go-common/library/log"
)
//GetUserFc 获取用户关注数
func (d *Dao) GetUserFc(c context.Context, uid int64) (res *v1.FeedGetUserFcResp_Data, err error) {
reply, err := d.RelationApi.V1Feed.GetUserFc(c, &v1.FeedGetUserFcReq{Follow: uid})
if err != nil {
log.Error("relation_GetUserFc_error:%v", err)
return
}
if reply.Code != 0 {
err = errors.New("code error")
log.Error("relation_gGetUserFc_error:%d,%s,%v", reply.Code, reply.Msg, reply.Data)
return
}
if reply.Data == nil {
err = errors.New("data error")
log.Error("relation_gGetUserFc_error:%d,%s,%v", reply.Code, reply.Msg, reply.Data)
return
}
log.Info("relation_gGetUserFc:%d,%s,$v", reply.Code, reply.Msg, reply.Data)
res = reply.Data
return
}

View File

@@ -0,0 +1,32 @@
package dao
import (
"context"
"encoding/json"
"go-common/app/service/live/resource/api/grpc/v1"
"go-common/library/log"
)
//TitansTeam 话题team值
const TitansTeam = 40
//TitansKeyword 话题标签值
const TitansKeyword = "topic"
// GetTopicList 获取话题列表
func (d *Dao) GetTopicList(c context.Context) (resp []string, err error) {
reply, err := d.titansCli.GetConfigByKeyword(c, &v1.GetConfigReq{Team: TitansTeam, Keyword: TitansKeyword})
if err != nil {
log.Error("main_member_GetIdentityStatus_error:%v", err)
return
}
log.Info("main_member_GetIdentityStatus:%v", reply)
resp = make([]string, 0)
e := json.Unmarshal([]byte(reply.Value), &resp)
if e != nil {
log.Error("GetTopicList_json_error:%v,res=%v,", e, reply.Value)
return
}
return
}

View File

@@ -0,0 +1,50 @@
package dao
import (
"context"
"go-common/app/service/live/room/api/liverpc/v1"
"go-common/library/log"
)
//PERMANENT_LOCK_TIME 永久封禁时间
const PERMANENT_LOCK_TIME = "2037-01-01 00:00:00"
//GetRoomInfosByUids ...
func (d *Dao) GetRoomInfosByUids(c context.Context, uid []int64) (res map[int64]*v1.RoomGetStatusInfoByUidsResp_RoomInfo, err error) {
reply, err := d.RoomApi.V1Room.GetStatusInfoByUids(c, &v1.RoomGetStatusInfoByUidsReq{
Uids: uid,
FilterOffline: 0,
ShowHidden: 1,
FilterIndexBlack: 0,
FilterVideo: 0,
NeedBroadcastType: 0,
})
if err != nil {
log.Error("room_getRoomInfosByUids_error:%v", err)
return
}
if reply.Code != 0 {
log.Error("room_getRoomInfosByUids_error:%d,%s,%v", reply.Code, reply.Msg, reply.Data)
return
}
log.Info("room_getRoomInfosByUids:%d,%s,%v", reply.Code, reply.Msg, reply.Data)
res = reply.Data
return
}
//CreateRoom ...
func (d *Dao) CreateRoom(c context.Context, uid int64) (res *v1.RoomMngCreateRoomResp_Data, err error) {
reply, err := d.RoomApi.V1RoomMng.CreateRoom(c, &v1.RoomMngCreateRoomReq{Uid: uid})
if err != nil {
log.Error("room_createRoom_error:%v", err)
return
}
if reply.Code != 0 {
log.Error("room_createRoom_error:%d,%s,%v", reply.Code, reply.Msg, reply.Data)
return
}
log.Info("room_createRoom:%d,%s,$v", reply.Code, reply.Msg, reply.Data)
res = reply.Data
return
}

View File

@@ -0,0 +1,27 @@
package dao
import (
"context"
"go-common/app/service/live/user/api/liverpc/v3"
"go-common/library/log"
)
//GetUserInfo 获取用户信息
func (d *Dao) GetUserInfo(c context.Context, uid []int64) (res map[int64]*v3.UserGetMultipleResp_UserInfo, err error) {
reply, err := d.UserApi.V3User.GetMultiple(c, &v3.UserGetMultipleReq{
Uids: uid,
Attributes: []string{"exp", "info"},
})
if err != nil {
log.Error("%v", err)
return
}
if reply.Code != 0 {
log.Error("user_getUserInfo_error:%d,%s,%v", reply.Code, reply.Msg, reply.Data)
return
}
log.Info("user_getUserInfo:%d,%s,%v", reply.Code, reply.Msg, reply.Data)
res = reply.Data
return
}