chart_info.go 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. package controllers
  2. import (
  3. "encoding/json"
  4. "eta/eta_forum_task/models"
  5. "eta/eta_forum_task/services"
  6. "strings"
  7. )
  8. type ChartInfoController struct {
  9. BaseCommonController
  10. }
  11. // Update
  12. // @Title 图表-更新
  13. // @Description 图表-更新
  14. // @Param request body data_manage.AddChartReq true "type json string"
  15. // @Success 200 {object} data_manage.AddChartInfoResp
  16. // @router /update [post]
  17. func (this *ChartInfoController) Update() {
  18. br := new(models.BaseResponse).Init()
  19. defer func() {
  20. this.Data["json"] = br
  21. this.ServeJSON()
  22. }()
  23. /*deleteCache := true
  24. cacheKey := "CACHE_CHART_INFO_ADD_" + strconv.Itoa(sysUser.AdminId)
  25. defer func() {
  26. if deleteCache {
  27. utils.Rc.Delete(cacheKey)
  28. }
  29. }()
  30. if !utils.Rc.SetNX(cacheKey, 1, 30*time.Second) {
  31. deleteCache = false
  32. br.Msg = "系统处理中,请稍后重试!"
  33. br.ErrMsg = "系统处理中,请稍后重试!" + sysUser.RealName + ";data:" + string(this.Ctx.Input.RequestBody)
  34. return
  35. }*/
  36. var req models.AddChartReq
  37. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  38. if err != nil {
  39. br.Msg = "参数解析异常!"
  40. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  41. return
  42. }
  43. if req.ChartInfo == nil {
  44. br.Msg = "请选择图表"
  45. return
  46. }
  47. if req.ChartInfo.ChartInfoId <= 0 {
  48. br.Msg = "请选择图表"
  49. return
  50. }
  51. //校验图表名称是否重复
  52. req.ChartInfo.ChartName = strings.Trim(req.ChartInfo.ChartName, " ")
  53. if req.ChartInfo.ChartName == "" {
  54. br.Msg = "请填写图表名称!"
  55. return
  56. }
  57. if len(req.EdbInfoList) <= 0 {
  58. br.Msg = "指标信息不能为空"
  59. return
  60. }
  61. for _, edbInfo := range req.EdbInfoList {
  62. if edbInfo.EdbName == "" {
  63. br.Msg = "指标名称不能为空"
  64. return
  65. }
  66. }
  67. if len(req.ChartEdbMapping) <= 0 {
  68. br.Msg = "图表指标映射不能为空"
  69. return
  70. }
  71. chartInfo, err, errMsg, _ := services.UpdateChartInfoAndEdbInfo(&req, 0, "")
  72. if err != nil {
  73. br.Msg = errMsg
  74. br.ErrMsg = err.Error()
  75. return
  76. }
  77. br.Ret = 200
  78. br.Success = true
  79. br.Msg = "保存成功"
  80. br.Data = models.AddChartInfoResp{
  81. ChartInfoId: chartInfo.ChartInfoId,
  82. UniqueCode: chartInfo.UniqueCode,
  83. ChartType: chartInfo.ChartType,
  84. }
  85. return
  86. }
  87. // Save
  88. // @Title 图表-保存
  89. // @Description 图表-保存
  90. // @Param request body data_manage.AddChartReq true "type json string"
  91. // @Success 200 {object} data_manage.AddChartInfoResp
  92. // @router /save [post]
  93. func (this *ChartInfoController) Save() {
  94. br := new(models.BaseResponse).Init()
  95. defer func() {
  96. this.Data["json"] = br
  97. this.ServeJSON()
  98. }()
  99. /*deleteCache := true
  100. cacheKey := "CACHE_CHART_INFO_ADD_" + strconv.Itoa(sysUser.AdminId)
  101. defer func() {
  102. if deleteCache {
  103. utils.Rc.Delete(cacheKey)
  104. }
  105. }()
  106. if !utils.Rc.SetNX(cacheKey, 1, 30*time.Second) {
  107. deleteCache = false
  108. br.Msg = "系统处理中,请稍后重试!"
  109. br.ErrMsg = "系统处理中,请稍后重试!" + sysUser.RealName + ";data:" + string(this.Ctx.Input.RequestBody)
  110. return
  111. }*/
  112. var req models.AddChartReq
  113. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  114. if err != nil {
  115. br.Msg = "参数解析异常!"
  116. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  117. return
  118. }
  119. if req.ChartInfo == nil {
  120. br.Msg = "请选择图表"
  121. return
  122. }
  123. //校验图表名称是否重复
  124. req.ChartInfo.ChartName = strings.Trim(req.ChartInfo.ChartName, " ")
  125. if req.ChartInfo.ChartName == "" {
  126. br.Msg = "请填写图表名称!"
  127. return
  128. }
  129. if len(req.EdbInfoList) <= 0 {
  130. br.Msg = "指标信息不能为空"
  131. return
  132. }
  133. for _, edbInfo := range req.EdbInfoList {
  134. if edbInfo.EdbName == "" {
  135. br.Msg = "指标名称不能为空"
  136. return
  137. }
  138. }
  139. if len(req.ChartEdbMapping) <= 0 {
  140. br.Msg = "图表指标映射不能为空"
  141. return
  142. }
  143. chartInfo, err, errMsg, _ := services.AddChartInfo(&req, 0, "")
  144. if err != nil {
  145. br.Msg = errMsg
  146. br.ErrMsg = err.Error()
  147. return
  148. }
  149. br.Ret = 200
  150. br.Success = true
  151. br.Msg = "保存成功"
  152. br.Data = models.AddChartInfoResp{
  153. ChartInfoId: chartInfo.ChartInfoId,
  154. UniqueCode: chartInfo.UniqueCode,
  155. ChartType: chartInfo.ChartType,
  156. }
  157. return
  158. }
  159. // Delete
  160. // @Title 图表-删除
  161. // @Description 图表-删除
  162. // @Param request body data_manage.DeleteChartReq true "type json string"
  163. // @Success 200 {object}
  164. // @router /delete [post]
  165. func (this *ChartInfoController) Delete() {
  166. br := new(models.BaseResponse).Init()
  167. defer func() {
  168. this.Data["json"] = br
  169. this.ServeJSON()
  170. }()
  171. var req models.DeleteChartReq
  172. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  173. if err != nil {
  174. br.Msg = "参数解析异常!"
  175. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  176. return
  177. }
  178. if req.ChartInfoId <= 0 {
  179. br.Msg = "请选择图表"
  180. return
  181. }
  182. err, errMsg := services.DeleteChart(req.ChartInfoId)
  183. if err != nil {
  184. br.Msg = errMsg
  185. br.ErrMsg = err.Error()
  186. return
  187. }
  188. br.Ret = 200
  189. br.Success = true
  190. br.Msg = "删除成功"
  191. }