table.go 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. package common
  2. import (
  3. "mtp2_if/global/app"
  4. "mtp2_if/global/e"
  5. "mtp2_if/logger"
  6. "mtp2_if/models"
  7. "net/http"
  8. "github.com/gin-gonic/gin"
  9. )
  10. // QueryTraderMenuReq 查询交易端菜单请求参数
  11. type QueryTraderMenuReq struct {
  12. LoginID int `form:"loginid" binding:"required"`
  13. }
  14. // QueryTraderMenuRsp 交易端菜单
  15. type QueryTraderMenuRsp struct {
  16. QuoteMenu []models.QuotePrimaryMenu `json:"QuoteMenu"` // 报价牌分类菜单
  17. OperationMenu []models.OperationPrimaryMenu `json:"OperationMenu"` // 功能菜单
  18. }
  19. // QueryTraderMenu 查询交易端菜单
  20. // @Summary 查询交易端菜单
  21. // @Produce json
  22. // @Param loginid query int true "登录账号"
  23. // @Success 200 {object} QueryTraderMenuRsp
  24. // @Failure 500 {object} app.Response
  25. // @Router /Common/QueryTraderMenu [get]
  26. // @Tags 通用服务
  27. func QueryTraderMenu(c *gin.Context) {
  28. appG := app.Gin{C: c}
  29. // 获取请求参数
  30. var req QueryTraderMenuReq
  31. if err := appG.C.ShouldBindQuery(&req); err != nil {
  32. logger.GetLogger().Errorf("QueryTraderMenu failed: %s", err.Error())
  33. appG.Response(http.StatusBadRequest, e.INVALID_PARAMS, nil)
  34. return
  35. }
  36. var queryTraderMenuRsp QueryTraderMenuRsp
  37. // 获取行情报价牌分类菜单
  38. if datas, err := models.GetQuoteMenu(req.LoginID); err == nil {
  39. queryTraderMenuRsp.QuoteMenu = datas
  40. } else {
  41. logger.GetLogger().Errorf("QueryTraderMenu failed: %s", err.Error())
  42. appG.Response(http.StatusBadRequest, e.ERROR_QUERY_QUOTEMENU_FAIL, nil)
  43. return
  44. }
  45. // 获取功能菜单
  46. if datas, err := models.GetOperationMenu(); err == nil {
  47. queryTraderMenuRsp.OperationMenu = datas
  48. } else {
  49. logger.GetLogger().Errorf("QueryTraderMenu failed: %s", err.Error())
  50. appG.Response(http.StatusBadRequest, e.ERROR_QUERY_OPERATIONMENU_FAIL, nil)
  51. return
  52. }
  53. // 查询成功
  54. logger.GetLogger().Debugln("QueryTraderMenu successed: %v", queryTraderMenuRsp)
  55. appG.Response(http.StatusOK, e.SUCCESS, queryTraderMenuRsp)
  56. }
  57. // GetPCMenusReq 获取PC交易端菜单请求参数
  58. type GetPCMenusReq struct {
  59. ResourceCode string `form:"resourceCode"`
  60. ParentCode string `form:"parentCode"`
  61. }
  62. // GetPCMenus 获取PC交易端菜单
  63. // @Summary 获取PC交易端菜单
  64. // @Produce json
  65. // @Param resourceCode query string false "资源代码"
  66. // @Param parentCode query string false "上级资源代码"
  67. // @Success 200 {array} models.Funcmenulist
  68. // @Failure 500 {object} app.Response
  69. // @Router /Common/GetPCMenus [get]
  70. // @Tags 通用服务
  71. func GetPCMenus(c *gin.Context) {
  72. appG := app.Gin{C: c}
  73. // 获取请求参数
  74. var req GetPCMenusReq
  75. appG.C.ShouldBindQuery(&req)
  76. // 获取功能菜单
  77. var f models.Funcmenulist
  78. datas, err := f.GetPCMenuList(req.ResourceCode, req.ParentCode)
  79. if err != nil {
  80. logger.GetLogger().Errorf("GetPCMenus failed: %s", err.Error())
  81. appG.Response(http.StatusBadRequest, e.ERROR_QUERY_OPERATIONMENU_FAIL, nil)
  82. return
  83. }
  84. // 查询成功
  85. logger.GetLogger().Debugln("GetPCMenus successed: %v", datas)
  86. appG.Response(http.StatusOK, e.SUCCESS, datas)
  87. }
  88. // QueryTableDefineReq 查询交易端列表头信息请求参数
  89. type QueryTableDefineReq struct {
  90. TableKey string `form:"tableKey"`
  91. TableType int `form:"tableType"`
  92. }
  93. // QueryTableDefineRsp 查询交易端列表头信息返回模型
  94. type QueryTableDefineRsp struct {
  95. models.Tabledefine `xorm:"extends"`
  96. Columns []models.Tablecolumnconfig `json:"columns" xorm:"-"` // 列头信息数组
  97. }
  98. // QueryTableDefine 查询交易端列表头信息
  99. // @Summary 查询交易端列表头信息
  100. // @Produce json
  101. // @Param tableKey query string false "表key"
  102. // @Param tableType query int false "列表类型 - 1:管理端 2:H5终端 3:移动终端"
  103. // @Success 200 {object} QueryTableDefineRsp
  104. // @Failure 500 {object} app.Response
  105. // @Router /Common/QueryTableDefine [get]
  106. // @Tags 通用服务
  107. func QueryTableDefine(c *gin.Context) {
  108. appG := app.Gin{C: c}
  109. // 获取请求参数
  110. var req QueryTableDefineReq
  111. if err := appG.C.ShouldBindQuery(&req); err != nil {
  112. logger.GetLogger().Errorf("QueryTableDefine failed: %s", err.Error())
  113. appG.Response(http.StatusBadRequest, e.INVALID_PARAMS, nil)
  114. return
  115. }
  116. rst := make([]QueryTableDefineRsp, 0)
  117. // 获取表定义
  118. tableDefines, err := models.GetClientTableDefines(req.TableKey, req.TableType)
  119. if err != nil {
  120. logger.GetLogger().Errorf("QueryTableDefine failed: %s", err.Error())
  121. appG.Response(http.StatusBadRequest, e.ERROR_QUERY_FAIL, nil)
  122. return
  123. }
  124. for i, v := range tableDefines {
  125. var queryTableDefineRsp QueryTableDefineRsp
  126. // 表数据
  127. queryTableDefineRsp.Tabledefine = tableDefines[i]
  128. // 获取列表数据
  129. tablecolumnconfigs, err := models.GetClientTableColumns(v.Tablekey, int(v.Tabletype))
  130. if err != nil {
  131. logger.GetLogger().Errorf("QueryTableDefine failed: %s", err.Error())
  132. appG.Response(http.StatusBadRequest, e.ERROR_QUERY_FAIL, nil)
  133. return
  134. }
  135. queryTableDefineRsp.Columns = tablecolumnconfigs
  136. rst = append(rst, queryTableDefineRsp)
  137. }
  138. // 查询成功
  139. logger.GetLogger().Debugln("QueryTableDefine successed: %v", rst)
  140. appG.Response(http.StatusOK, e.SUCCESS, rst)
  141. }