You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
183 lines
5.0 KiB
183 lines
5.0 KiB
package server |
|
|
|
import ( |
|
"go-common/app/service/main/archive/api" |
|
"go-common/app/service/main/archive/model/archive" |
|
"go-common/library/log" |
|
"go-common/library/net/rpc/context" |
|
) |
|
|
|
// 3结尾的方法全都是pb格式的memcache |
|
|
|
// MaxAID get max aid |
|
func (r *RPC) MaxAID(c context.Context, a *struct{}, res *int64) (err error) { |
|
*res, err = r.s.MaxAID(c) |
|
return |
|
} |
|
|
|
// Archive3 receive aid, then init archive info. |
|
func (r *RPC) Archive3(c context.Context, a *archive.ArgAid2, res *api.Arc) (err error) { |
|
var ar *api.Arc |
|
if ar, err = r.s.Archive3(c, a.Aid); err == nil { |
|
*res = *ar |
|
} |
|
return |
|
} |
|
|
|
// Archives3 receive aids, then init archives info. |
|
func (r *RPC) Archives3(c context.Context, a *archive.ArgAids2, res *map[int64]*api.Arc) (err error) { |
|
if len(a.Aids) > 300 { |
|
log.Error("Too many Args aids(%d) caller(%s) arg(%v)", len(a.Aids), c.User(), a.Aids) |
|
} |
|
*res, err = r.s.Archives3(c, a.Aids) |
|
return |
|
} |
|
|
|
// View3 view archive. |
|
func (r *RPC) View3(c context.Context, a *archive.ArgAid2, av *archive.View3) (err error) { |
|
var res *api.ViewReply |
|
if res, err = r.s.View3(c, a.Aid); err == nil { |
|
*av = *archive.BuildView3(res.Arc, res.Pages) |
|
} |
|
return |
|
} |
|
|
|
// Views3 view archive. |
|
func (r *RPC) Views3(c context.Context, a *archive.ArgAids2, res *map[int64]*archive.View3) (err error) { |
|
if len(a.Aids) > 300 { |
|
log.Error("Too many Args aids(%d) caller(%s)", len(a.Aids), c.User()) |
|
} |
|
var views map[int64]*api.ViewReply |
|
if views, err = r.s.Views3(c, a.Aids); err == nil { |
|
var resp = make(map[int64]*archive.View3) |
|
for aid, view := range views { |
|
v := archive.BuildView3(view.Arc, view.Pages) |
|
if v != nil { |
|
resp[aid] = v |
|
} |
|
} |
|
*res = resp |
|
} |
|
return |
|
} |
|
|
|
// Stat3 archive stat. |
|
func (r *RPC) Stat3(c context.Context, a *archive.ArgAid2, res *api.Stat) (err error) { |
|
var st *api.Stat |
|
if st, err = r.s.Stat3(c, a.Aid); err == nil { |
|
*res = *st |
|
} |
|
return |
|
} |
|
|
|
// Page3 get videos by aid |
|
func (r *RPC) Page3(c context.Context, a *archive.ArgAid2, res *[]*api.Page) (err error) { |
|
*res, err = r.s.Page3(c, a.Aid) |
|
return |
|
} |
|
|
|
// Stats3 archive stats. |
|
func (r *RPC) Stats3(c context.Context, a *archive.ArgAids2, res *map[int64]*api.Stat) (err error) { |
|
if len(a.Aids) > 200 { |
|
log.Error("Too many Args aids(%d) caller(%s)", len(a.Aids), c.User()) |
|
log.Error("Too many Args aids(%d) caller(%s) arg(%v)", len(a.Aids), c.User(), a.Aids) |
|
} |
|
*res, err = r.s.Stats3(c, a.Aids) |
|
return |
|
} |
|
|
|
// Click3 archive click. |
|
func (r *RPC) Click3(c context.Context, a *archive.ArgAid2, res *api.Click) (err error) { |
|
var clk *api.Click |
|
if clk, err = r.s.Click3(c, a.Aid); err == nil { |
|
*res = *clk |
|
} |
|
return |
|
} |
|
|
|
// UpArcs3 up archives. |
|
func (r *RPC) UpArcs3(c context.Context, a *archive.ArgUpArcs2, res *[]*api.Arc) (err error) { |
|
*res, err = r.s.UpperPassed3(c, a.Mid, a.Pn, a.Ps) |
|
return |
|
} |
|
|
|
// UpsArcs3 ups archives. |
|
func (r *RPC) UpsArcs3(c context.Context, a *archive.ArgUpsArcs2, res *map[int64][]*api.Arc) (err error) { |
|
*res, err = r.s.UppersPassed3(c, a.Mids, a.Pn, a.Ps) |
|
return |
|
} |
|
|
|
// Recommend3 from archive_recommend by aid |
|
func (r *RPC) Recommend3(c context.Context, a *archive.ArgAid2, res *[]*api.Arc) (err error) { |
|
*res, err = r.s.UpperReommend(c, a.Aid) |
|
return |
|
} |
|
|
|
// RankArcs3 Arcs by rid |
|
func (r *RPC) RankArcs3(c context.Context, a *archive.ArgRank2, res *archive.RankArchives3) (err error) { |
|
if a.Type == 0 { |
|
res.Archives, res.Count, err = r.s.RegionArcs3(c, a.Rid, a.Pn, a.Ps) |
|
} else { |
|
res.Archives, res.Count, err = r.s.RegionOriginArcs3(c, a.Rid, a.Pn, a.Ps) |
|
} |
|
return |
|
} |
|
|
|
// ArchivesWithPlayer archives with player info |
|
func (r *RPC) ArchivesWithPlayer(c context.Context, a *archive.ArgPlayer, res *map[int64]*archive.ArchiveWithPlayer) (err error) { |
|
var as map[int64]*archive.ArchiveWithPlayer |
|
if as, err = r.s.ArchivesWithPlayer(c, a, false); err != nil { |
|
return |
|
} |
|
*res = as |
|
return |
|
} |
|
|
|
// RanksArcs3 Arcs by rids |
|
func (r *RPC) RanksArcs3(c context.Context, a *archive.ArgRanks2, res *map[int16]*archive.RankArchives3) (err error) { |
|
var ( |
|
as []*api.Arc |
|
tmp map[int16]*archive.RankArchives3 |
|
count int |
|
) |
|
tmp = make(map[int16]*archive.RankArchives3) |
|
for _, rid := range a.Rids { |
|
if a.Type == 0 { |
|
as, count, err = r.s.RegionArcs3(c, rid, a.Pn, a.Ps) |
|
} else { |
|
as, count, err = r.s.RegionOriginArcs3(c, rid, a.Pn, a.Ps) |
|
} |
|
if err != nil { |
|
return |
|
} |
|
tmp[rid] = &archive.RankArchives3{Archives: as, Count: count} |
|
} |
|
*res = tmp |
|
return |
|
} |
|
|
|
// RankTopArcs3 Arcs by reids |
|
func (r *RPC) RankTopArcs3(c context.Context, a *archive.ArgRankTop2, res *[]*api.Arc) (err error) { |
|
*res, err = r.s.RegionTopArcs3(c, a.ReID, a.Pn, a.Ps) |
|
return |
|
} |
|
|
|
// RankAllArcs3 left 7 days all Arcs |
|
func (r *RPC) RankAllArcs3(c context.Context, a *archive.ArgRankAll2, res *archive.RankArchives3) (err error) { |
|
var data *archive.RankArchives3 |
|
data, err = r.s.RegionAllArcs3(c, a.Pn, a.Ps) |
|
if err == nil { |
|
*res = *data |
|
} |
|
return |
|
} |
|
|
|
// Video3 get video by aid & cid. |
|
func (r *RPC) Video3(c context.Context, a *archive.ArgVideo2, res *api.Page) (err error) { |
|
var p *api.Page |
|
p, err = r.s.Video3(c, a.Aid, a.Cid) |
|
if err == nil { |
|
*res = *p |
|
} |
|
return |
|
}
|
|
|