Files
go-common/app/service/live/resource/service/v1/liveCheck.go
2019-04-22 18:49:16 +08:00

89 lines
2.2 KiB
Go

package v1
import (
"context"
"encoding/json"
v1pb "go-common/app/service/live/resource/api/grpc/v1"
"go-common/app/service/live/resource/conf"
"go-common/app/service/live/resource/dao"
"go-common/library/ecode"
"go-common/library/log"
)
// LiveCheckService struct
type LiveCheckService struct {
conf *conf.Config
// optionally add other properties here, such as dao
dao *dao.Dao
}
//NewLiveCheckService init
func NewLiveCheckService(c *conf.Config) (s *LiveCheckService) {
s = &LiveCheckService{
conf: c,
dao: dao.New(c),
}
return s
}
// LiveCheck implementation
// 客户端获取能否直播接口
func (s *LiveCheckService) LiveCheck(ctx context.Context, req *v1pb.LiveCheckReq) (resp *v1pb.LiveCheckResp, err error) {
resp = &v1pb.LiveCheckResp{}
log.Info("[LiveCheck] platform is %s system is %s mobile is %s", req.Platform, req.System, req.Mobile)
if req.Platform == "" || req.Mobile == "" || req.System == "" {
err = ecode.ResourceParamErr
return
}
resp.IsLive = s.dao.GetLiveCheck(ctx, req.Platform, req.System, req.Mobile)
return
}
// GetLiveCheckList implementation
// 后台查询所有配置设备黑名单
func (s *LiveCheckService) GetLiveCheckList(ctx context.Context, req *v1pb.GetLiveCheckListReq) (resp *v1pb.GetLiveCheckListResp, err error) {
resp = &v1pb.GetLiveCheckListResp{}
value, err := s.dao.GetLiveCheckList(ctx)
if err != nil {
err = ecode.GetConfAdminErr
return
}
if value == "" {
err = ecode.GetConfAdminErr
return
}
err = json.Unmarshal([]byte(value), resp)
if err != nil {
log.Error("[LiveCheck] admin get live check conf error by wrong format")
err = ecode.GetConfAdminErr
return
}
return
}
// AddLiveCheck implementation
// 后台添加能否直播设备黑名单
func (s *LiveCheckService) AddLiveCheck(ctx context.Context, req *v1pb.AddLiveCheckReq) (resp *v1pb.AddLiveCheckResp, err error) {
resp = &v1pb.AddLiveCheckResp{}
value := req.LiveCheck
if value == "" {
err = ecode.ResourceParamErr
return
}
list := &v1pb.GetLiveCheckListResp{}
err = json.Unmarshal([]byte(value), list)
if err != nil {
err = ecode.ResourceParamErr
return
}
jsonStr, _ := json.Marshal(list)
err = s.dao.SetLiveCheck(ctx, string(jsonStr))
if err != nil {
err = ecode.SetConfAdminErr
return
}
return
}