123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- package gorpc
- import (
- "go-common/app/interface/main/history/conf"
- "go-common/app/interface/main/history/model"
- "go-common/app/interface/main/history/service"
- "go-common/library/ecode"
- "go-common/library/net/rpc"
- "go-common/library/net/rpc/context"
- )
- // RPC represent rpc server
- type RPC struct {
- svc *service.Service
- }
- // New init rpc.
- func New(c *conf.Config, s *service.Service) (svr *rpc.Server) {
- r := &RPC{svc: s}
- svr = rpc.NewServer(c.RPCServer)
- if err := svr.Register(r); err != nil {
- panic(err)
- }
- return
- }
- // Ping check connection success.
- func (r *RPC) Ping(c context.Context, arg *struct{}, res *struct{}) (err error) {
- return
- }
- // Progress report a user hisotry.
- func (r *RPC) Progress(c context.Context, arg *model.ArgPro, res *map[int64]*model.History) (err error) {
- *res, err = r.svc.Progress(c, arg.Mid, arg.Aids)
- return
- }
- // Position report a user hisotry.
- func (r *RPC) Position(c context.Context, arg *model.ArgPos, res *model.History) (err error) {
- var v *model.History
- tp, err := model.CheckBusiness(arg.Business)
- if err != nil {
- return
- }
- if tp > 0 {
- arg.TP = tp
- }
- v, err = r.svc.Position(c, arg.Mid, arg.Aid, arg.TP)
- if err == nil {
- *res = *v
- }
- return
- }
- // Add (c context.Context, mid, src, rtime int64, ip string, h *model.History) (err error) .
- func (r *RPC) Add(c context.Context, arg *model.ArgHistory, res *struct{}) (err error) {
- if arg.History != nil {
- var tp int8
- if tp, err = model.CheckBusiness(arg.History.Business); err != nil {
- return
- } else if tp > 0 {
- arg.History.TP = tp
- }
- }
- err = r.svc.AddHistory(c, arg.Mid, arg.Realtime, arg.History)
- return
- }
- // Delete delete histories
- func (r *RPC) Delete(c context.Context, arg *model.ArgDelete, res *struct{}) (err error) {
- if len(arg.Resources) == 0 {
- err = ecode.RequestErr
- return
- }
- histories := make([]*model.History, 0, len(arg.Resources))
- for _, history := range arg.Resources {
- var tp int8
- if tp, err = model.MustCheckBusiness(history.Business); err != nil {
- return
- }
- histories = append(histories, &model.History{
- Aid: history.Oid,
- TP: tp,
- })
- }
- err = r.svc.Delete(c, arg.Mid, histories)
- return
- }
- // History return all history .
- func (r *RPC) History(c context.Context, arg *model.ArgHistories, res *[]*model.Resource) (err error) {
- tp, err := model.CheckBusiness(arg.Business)
- if err != nil {
- return
- }
- if tp > 0 {
- arg.TP = tp
- }
- *res, err = r.svc.Histories(c, arg.Mid, arg.TP, arg.Pn, arg.Ps)
- return
- }
- // HistoryCursor return all history .
- func (r *RPC) HistoryCursor(c context.Context, arg *model.ArgCursor, res *[]*model.Resource) (err error) {
- tp, err := model.CheckBusiness(arg.Business)
- if err != nil {
- return
- }
- if tp > 0 {
- arg.TP = tp
- }
- var tps []int8
- for _, b := range arg.Businesses {
- tp, err = model.CheckBusiness(b)
- if err != nil {
- return
- }
- tps = append(tps, tp)
- }
- *res, err = r.svc.HistoryCursor(c, arg.Mid, arg.Max, arg.ViewAt, arg.Ps, arg.TP, tps, arg.RealIP)
- return
- }
- // Clear clear history
- func (r *RPC) Clear(c context.Context, arg *model.ArgClear, res *struct{}) (err error) {
- var tps []int8
- for _, b := range arg.Businesses {
- var tp int8
- if tp, err = model.MustCheckBusiness(b); err != nil {
- return
- }
- tps = append(tps, tp)
- }
- err = r.svc.ClearHistory(c, arg.Mid, tps)
- return
- }
|