212 lines
5.1 KiB
Go
212 lines
5.1 KiB
Go
// Package grpc generate by warden_gen
|
|
package grpc
|
|
|
|
import (
|
|
"context"
|
|
|
|
pb "go-common/app/interface/main/history/api/grpc"
|
|
"go-common/app/interface/main/history/model"
|
|
service "go-common/app/interface/main/history/service"
|
|
"go-common/library/net/rpc/warden"
|
|
)
|
|
|
|
// New History warden rpc server
|
|
func New(c *warden.ServerConfig, svr *service.Service) *warden.Server {
|
|
ws := warden.NewServer(c)
|
|
pb.RegisterHistoryServer(ws.Server(), &server{svr})
|
|
ws, err := ws.Start()
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
return ws
|
|
}
|
|
|
|
type server struct {
|
|
svr *service.Service
|
|
}
|
|
|
|
var _ pb.HistoryServer = &server{}
|
|
|
|
// AddHistory add hisotry progress into hbase.
|
|
func (s *server) AddHistory(ctx context.Context, req *pb.AddHistoryReq) (*pb.AddHistoryReply, error) {
|
|
tp, err := model.MustCheckBusiness(req.H.Business)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
h := &model.History{
|
|
Mid: req.H.Mid,
|
|
Aid: req.H.Aid,
|
|
Sid: req.H.Sid,
|
|
Epid: req.H.Epid,
|
|
TP: tp,
|
|
Business: req.H.Business,
|
|
STP: int8(req.H.Stp),
|
|
Cid: req.H.Cid,
|
|
DT: int8(req.H.Dt),
|
|
Pro: req.H.Pro,
|
|
Unix: req.H.Unix,
|
|
}
|
|
return nil, s.svr.AddHistory(ctx, req.Mid, req.Rtime, h)
|
|
}
|
|
|
|
// Progress get view progress from cache/hbase.
|
|
func (s *server) Progress(ctx context.Context, req *pb.ProgressReq) (*pb.ProgressReply, error) {
|
|
histories, err := s.svr.Progress(ctx, req.Mid, req.Aids)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
reply := &pb.ProgressReply{Res: make(map[int64]*pb.ModelHistory)}
|
|
for k, v := range histories {
|
|
reply.Res[k] = &pb.ModelHistory{
|
|
Mid: v.Mid,
|
|
Aid: v.Aid,
|
|
Sid: v.Sid,
|
|
Epid: v.Epid,
|
|
Business: v.Business,
|
|
Stp: int32(v.STP),
|
|
Cid: v.Cid,
|
|
Dt: int32(v.DT),
|
|
Pro: v.Pro,
|
|
Unix: v.Unix,
|
|
}
|
|
}
|
|
return reply, nil
|
|
}
|
|
|
|
// Position get view progress from cache/hbase.
|
|
func (s *server) Position(ctx context.Context, req *pb.PositionReq) (*pb.PositionReply, error) {
|
|
tp, err := model.MustCheckBusiness(req.Business)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
h, err := s.svr.Position(ctx, req.Mid, req.Aid, tp)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
reply := &pb.PositionReply{
|
|
Res: &pb.ModelHistory{
|
|
Mid: h.Mid,
|
|
Aid: h.Aid,
|
|
Sid: h.Sid,
|
|
Epid: h.Epid,
|
|
Business: h.Business,
|
|
Stp: int32(h.STP),
|
|
Cid: h.Cid,
|
|
Dt: int32(h.DT),
|
|
Pro: h.Pro,
|
|
Unix: h.Unix,
|
|
},
|
|
}
|
|
return reply, err
|
|
}
|
|
|
|
// ClearHistory clear user's historys.
|
|
func (s *server) ClearHistory(ctx context.Context, req *pb.ClearHistoryReq) (*pb.ClearHistoryReply, error) {
|
|
var tps []int8
|
|
for _, b := range req.Businesses {
|
|
tp, err := model.MustCheckBusiness(b)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
tps = append(tps, tp)
|
|
}
|
|
return nil, s.svr.ClearHistory(ctx, req.Mid, tps)
|
|
}
|
|
|
|
// Histories return the user all av history.
|
|
func (s *server) Histories(ctx context.Context, req *pb.HistoriesReq) (*pb.HistoriesReply, error) {
|
|
tp, err := model.MustCheckBusiness(req.Business)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
resources, err := s.svr.Histories(ctx, req.Mid, tp, int(req.Pn), int(req.Ps))
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
reply := &pb.HistoriesReply{}
|
|
for _, v := range resources {
|
|
reply.Res = append(reply.Res,
|
|
&pb.ModelResource{
|
|
Mid: v.Mid,
|
|
Oid: v.Oid,
|
|
Sid: v.Sid,
|
|
Epid: v.Epid,
|
|
Business: v.Business,
|
|
Stp: int32(v.STP),
|
|
Cid: v.Cid,
|
|
Dt: int32(v.DT),
|
|
Pro: v.Pro,
|
|
Unix: v.Unix,
|
|
})
|
|
}
|
|
return reply, nil
|
|
}
|
|
|
|
// HistoryCursor return the user all av history.
|
|
func (s *server) HistoryCursor(ctx context.Context, req *pb.HistoryCursorReq) (*pb.HistoryCursorReply, error) {
|
|
tp, err := model.MustCheckBusiness(req.Business)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
var tps []int8
|
|
for _, b := range req.Businesses {
|
|
t, er := model.MustCheckBusiness(b)
|
|
if er != nil {
|
|
return nil, er
|
|
}
|
|
tps = append(tps, t)
|
|
}
|
|
resources, err := s.svr.HistoryCursor(ctx, req.Mid, req.Max, req.ViewAt, int(req.Ps), tp, tps, req.Ip)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
reply := &pb.HistoryCursorReply{}
|
|
for _, v := range resources {
|
|
reply.Res = append(reply.Res,
|
|
&pb.ModelResource{
|
|
Mid: v.Mid,
|
|
Oid: v.Oid,
|
|
Sid: v.Sid,
|
|
Epid: v.Epid,
|
|
Business: v.Business,
|
|
Stp: int32(v.STP),
|
|
Cid: v.Cid,
|
|
Dt: int32(v.DT),
|
|
Pro: v.Pro,
|
|
Unix: v.Unix,
|
|
})
|
|
}
|
|
return reply, nil
|
|
}
|
|
|
|
// Delete .
|
|
func (s *server) Delete(ctx context.Context, req *pb.DeleteReq) (*pb.DeleteReply, error) {
|
|
var his []*model.History
|
|
for _, b := range req.His {
|
|
tp, err := model.MustCheckBusiness(b.Business)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
h := &model.History{
|
|
Mid: b.Mid,
|
|
Aid: b.Aid,
|
|
Sid: b.Sid,
|
|
Epid: b.Epid,
|
|
TP: tp,
|
|
Business: b.Business,
|
|
STP: int8(b.Stp),
|
|
Cid: b.Cid,
|
|
DT: int8(b.Dt),
|
|
Pro: b.Pro,
|
|
Unix: b.Unix,
|
|
}
|
|
his = append(his, h)
|
|
}
|
|
return nil, s.svr.Delete(ctx, req.Mid, his)
|
|
}
|
|
|
|
// FlushHistory flush to hbase from cache.
|
|
func (s *server) FlushHistory(ctx context.Context, req *pb.FlushHistoryReq) (*pb.FlushHistoryReply, error) {
|
|
return nil, s.svr.FlushHistory(ctx, req.Mids, req.Stime)
|
|
}
|