ureport.go 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package ureport
  2. import (
  3. "fmt"
  4. "git.qianqiusoft.com/public/glog"
  5. "git.qianqiusoft.com/qianqiusoft/light-apiengine/entitys"
  6. )
  7. var _ureportHandlerMap map[string]func(ctx *entitys.CtrlContext)interface{} = make(map[string]func(ctx *entitys.CtrlContext)interface{})
  8. var _ureportBeanFieldsHandlerMap map[string]func(ctx *entitys.CtrlContext)[]string = make(map[string]func(ctx *entitys.CtrlContext)[]string)
  9. /**
  10. * @brief: register dataset handler
  11. */
  12. func RegisterUreportHandler(key string, handler func(ctx *entitys.CtrlContext)interface{}){
  13. if handler == nil{
  14. return
  15. }
  16. if _, ok := _ureportHandlerMap[key]; ok{
  17. fmt.Println("---------------------->key is already exists")
  18. return
  19. }
  20. _ureportHandlerMap[key] = handler
  21. }
  22. /**
  23. * @brief: register bean fields handler
  24. */
  25. func RegisterUreportBeanFieldsHandler(class string, handler func(ctx *entitys.CtrlContext)[]string){
  26. if handler == nil{
  27. return
  28. }
  29. if _, ok := _ureportBeanFieldsHandlerMap[class]; ok{
  30. fmt.Println("---------------------->class is already exists")
  31. return
  32. }
  33. _ureportBeanFieldsHandlerMap[class] = handler
  34. }
  35. func CallUreportHanlder(ctx *entitys.CtrlContext){
  36. if _ureportHandlerMap == nil{
  37. fmt.Println("-------------------------handler is nil>")
  38. return
  39. }
  40. key := ctx.Ctx.DefaultQuery("key", "")
  41. if handler, ok := _ureportHandlerMap[key]; ok{
  42. ret := handler(ctx)
  43. ctx.Ctx.JSON(200, ret)
  44. }else{
  45. ctx.Ctx.JSON(200, map[string]interface{}{"code": 500, "msg": "key is not exists", "data": nil})
  46. }
  47. }
  48. func CallUreportBeanFieldsHandler(ctx *entitys.CtrlContext){
  49. if _ureportBeanFieldsHandlerMap == nil{
  50. fmt.Println("-------------------------bean fields handler is nil>")
  51. return
  52. }
  53. class := ctx.Ctx.DefaultQuery("class", "")
  54. if handler, ok := _ureportBeanFieldsHandlerMap[class]; ok{
  55. ret := handler(ctx)
  56. mapss := make([]map[string]string, 0)
  57. for i := range ret{
  58. mapss = append(mapss, map[string]string{
  59. "name": ret[i],
  60. })
  61. }
  62. glog.Infoln(mapss)
  63. ctx.Ctx.JSON(200, mapss)
  64. }else{
  65. glog.Infoln("there is not class bean fields handler", class)
  66. ctx.Ctx.JSON(200, map[string]interface{}{"code": 500, "msg": "class is not exists", "data": nil})
  67. }
  68. }