handler.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. package handler
  2. import (
  3. "context"
  4. "fmt"
  5. "strconv"
  6. "bet24.com/log"
  7. pb "bet24.com/servers/micros/dotservice/proto"
  8. )
  9. var instance *dot
  10. type dot struct {
  11. }
  12. func GetInstance() *dot {
  13. if instance == nil {
  14. instance = newHandler()
  15. }
  16. return instance
  17. }
  18. func newHandler() *dot {
  19. ret := new(dot)
  20. ret.ctor()
  21. return ret
  22. }
  23. func (g *dot) ctor() {
  24. newDotMgr()
  25. }
  26. func Dump(cmd, param1, param2 string) {
  27. GetInstance().dump(cmd, param1, param2)
  28. }
  29. func (g *dot) dump(cmd, param1, param2 string) {
  30. switch cmd {
  31. case "config":
  32. mgr.dumpConfig()
  33. case "user":
  34. mgr.dumpUser(param1)
  35. case "exit":
  36. mgr.dumpClear()
  37. default:
  38. log.Release("dotservice.Dump unhandled cmd %s", cmd)
  39. }
  40. }
  41. func (g *dot) SayHello(ctx context.Context, req *pb.Request, rsp *pb.Response) error {
  42. rsp.Data = fmt.Sprintf("Hello from %s:%s", pb.ServiceName, req.Name)
  43. return nil
  44. }
  45. // 添加打点
  46. func (g *dot) AddDot(ctx context.Context, req *pb.Request_AddDot, rsp *pb.Response) error {
  47. u := ""
  48. if req.UserId > 0 {
  49. u = strconv.Itoa(req.UserId)
  50. } else {
  51. u = req.DotScope.IpAddress
  52. }
  53. mgr.addDot(u, req.DotScope)
  54. return nil
  55. }
  56. // 获取打点统计
  57. func (g *dot) GetStatList(ctx context.Context, req *pb.Request_List, rsp *pb.Response_StatList) error {
  58. rsp.List = mgr.getStatList(req.BeginTime, req.EndTime, req.Event)
  59. return nil
  60. }
  61. // 获取打点任务统计
  62. func (g *dot) GetTaskStatList(ctx context.Context, req *pb.Request_List, rsp *pb.Response_StatList) error {
  63. rsp.List = mgr.getTaskStatList(req.BeginTime, req.EndTime)
  64. return nil
  65. }
  66. // 打点列表
  67. func (g *dot) GetConfigListNotTask(ctx context.Context, req *pb.Request, rsp *pb.Response_StatList) error {
  68. rsp.List = mgr.getConfigListNotTask()
  69. return nil
  70. }