rpc.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. package server
  2. import (
  3. "go-common/app/service/main/archive/api"
  4. "go-common/app/service/main/dynamic/conf"
  5. "go-common/app/service/main/dynamic/model"
  6. "go-common/app/service/main/dynamic/service"
  7. "go-common/library/net/rpc"
  8. "go-common/library/net/rpc/context"
  9. )
  10. // RPC struct info.
  11. type RPC struct {
  12. s *service.Service
  13. }
  14. // New new rpc server.
  15. func New(c *conf.Config, s *service.Service) (svr *rpc.Server) {
  16. r := &RPC{s: s}
  17. svr = rpc.NewServer(c.RPCServer)
  18. if err := svr.Register(r); err != nil {
  19. panic(err)
  20. }
  21. return
  22. }
  23. // Ping check connection success.
  24. func (r *RPC) Ping(c context.Context, arg *struct{}, res *struct{}) (err error) {
  25. return
  26. }
  27. //RegionTotal return dynamic region total.
  28. func (r *RPC) RegionTotal(c context.Context, a *model.ArgRegionTotal, res *map[string]int) (err error) {
  29. *res = r.s.RegionTotal(c)
  30. return
  31. }
  32. // RegionArcs3 receive aid, then init archive3 info.
  33. func (r *RPC) RegionArcs3(c context.Context, a *model.ArgRegion3, res *model.DynamicArcs3) (err error) {
  34. var (
  35. count int
  36. arcs []*api.Arc
  37. )
  38. if arcs, count, err = r.s.RegionArcs3(c, a.RegionID, a.Pn, a.Ps); err == nil {
  39. res.Page = &model.Page{Num: a.Pn, Size: a.Ps, Count: count}
  40. res.Archives = arcs
  41. }
  42. return
  43. }
  44. // RegionTagArcs3 receive aid, then init archive info.
  45. func (r *RPC) RegionTagArcs3(c context.Context, a *model.ArgRegionTag3, res *model.DynamicArcs3) (err error) {
  46. var (
  47. count int
  48. arcs []*api.Arc
  49. )
  50. if arcs, count, err = r.s.RegionTagArcs3(c, a.RegionID, a.TagID, a.Pn, a.Ps); err == nil {
  51. res.Page = &model.Page{Num: a.Pn, Size: a.Ps, Count: count}
  52. res.Archives = arcs
  53. }
  54. return
  55. }
  56. // RegionsArcs3 receive rids and return dynamic archives3.
  57. func (r *RPC) RegionsArcs3(c context.Context, a *model.ArgRegions3, res *map[int32][]*api.Arc) (err error) {
  58. *res, err = r.s.RegionsArcs3(c, a.RegionIDs, a.Count)
  59. return
  60. }