eta_controller.go 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. package controllers
  2. import (
  3. "encoding/json"
  4. "eta/eta_mini_crm_ht/models"
  5. "eta/eta_mini_crm_ht/models/request"
  6. "eta/eta_mini_crm_ht/models/response"
  7. "eta/eta_mini_crm_ht/services"
  8. "net/http"
  9. )
  10. type ETAController struct {
  11. BaseAuthController
  12. }
  13. // GetDataList
  14. // @Title 数据列表
  15. // @Description 数据列表
  16. // @Success 200 {object} models.LoginResp
  17. // @router /business_data/data/list [get]
  18. func (this *ETAController) GetDataList() {
  19. br := new(models.BaseResponse).Init()
  20. defer func() {
  21. this.Data["json"] = br
  22. this.ServeJSON()
  23. }()
  24. etaRequest := new(request.IndexDataListReq)
  25. // 绑定查询参数到结构体
  26. if err := this.ParseForm(etaRequest); err != nil {
  27. this.Ctx.Output.SetStatus(http.StatusBadRequest)
  28. this.Data["json"] = map[string]string{"error": "Invalid request parameters"}
  29. this.ServeJSON()
  30. return
  31. }
  32. dataList, err := services.GetDataList(etaRequest.ToEtaDataRequest())
  33. if err != nil {
  34. br.Msg = "分类列表获取失败"
  35. br.ErrMsg = "分类列表获取失败,系统错误,Err:" + err.Error()
  36. return
  37. }
  38. //var data = new(response.BaseFromBusinessIndexResponse)
  39. br.Data = dataList
  40. br.Ret = 200
  41. br.Msg = "指标信息获取成功"
  42. br.Success = true
  43. }
  44. // GetList
  45. // @Title 数据列表
  46. // @Description 数据列表
  47. // @Success 200 {object} models.LoginResp
  48. // @router /business_data/list [get]
  49. func (this *ETAController) GetList() {
  50. br := new(models.BaseResponse).Init()
  51. defer func() {
  52. this.Data["json"] = br
  53. this.ServeJSON()
  54. }()
  55. etaRequest := new(request.IndexListReq)
  56. // 绑定查询参数到结构体
  57. if err := this.ParseForm(etaRequest); err != nil {
  58. this.Ctx.Output.SetStatus(http.StatusBadRequest)
  59. this.Data["json"] = map[string]string{"error": "Invalid request parameters"}
  60. this.ServeJSON()
  61. return
  62. }
  63. if etaRequest.SortColumn == "" {
  64. etaRequest.SortColumn = "create_time"
  65. }
  66. if etaRequest.SortOrder == "" {
  67. etaRequest.SortOrder = "desc"
  68. }
  69. indexList, err := services.GetList(etaRequest.ToEtaRequest())
  70. if err != nil {
  71. br.Msg = "分类列表获取失败"
  72. br.ErrMsg = "分类列表获取失败,系统错误,Err:" + err.Error()
  73. return
  74. }
  75. var data = new(response.BaseFromBusinessIndexResponse)
  76. br.Data = data.ToCrmRequest(indexList)
  77. br.Ret = 200
  78. br.Msg = "指标信息获取成功"
  79. br.Success = true
  80. }
  81. // GetSourceList
  82. // @Title 渠道列表
  83. // @Description 获取一期指标信息
  84. // @Success 200 {object} models.LoginResp
  85. // @router /business_data/source/list [get]
  86. func (this *ETAController) GetSourceList() {
  87. br := new(models.BaseResponse).Init()
  88. defer func() {
  89. this.Data["json"] = br
  90. this.ServeJSON()
  91. }()
  92. sourceList, err := services.GetSourceList()
  93. if err != nil {
  94. br.Msg = "分类列表获取失败"
  95. br.ErrMsg = "分类列表获取失败,系统错误,Err:" + err.Error()
  96. return
  97. }
  98. //过滤包含一期的来源
  99. br.Data = sourceList
  100. br.Ret = 200
  101. br.Msg = "指标信息获取成功"
  102. br.Success = true
  103. }
  104. // DeleteIndex
  105. // @Title 删除自有数据指标
  106. // @Description 删除自有数据指标
  107. // @Success 200 {object} models.LoginResp
  108. // @router /business_data/del [post]
  109. func (this *ETAController) DeleteIndex() {
  110. br := new(models.BaseResponse).Init()
  111. defer func() {
  112. this.Data["json"] = br
  113. this.ServeJSON()
  114. }()
  115. var req request.IndexesDeleteReq
  116. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  117. if err != nil {
  118. br.Msg = "参数解析异常!"
  119. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  120. return
  121. }
  122. if req.DeleteAll {
  123. req.DeleteList = []string{}
  124. undeleteMap := make(map[string]int, len(req.UnDeleteList))
  125. if len(req.UnDeleteList) > 0 {
  126. for _, v := range req.UnDeleteList {
  127. undeleteMap[v] = 1
  128. }
  129. }
  130. list, fetchErr := services.GetIndexList()
  131. if fetchErr != nil {
  132. br.Msg = "指标列表获取失败"
  133. br.ErrMsg = "指标列表获取失败:" + fetchErr.Error()
  134. return
  135. }
  136. for _, v := range list {
  137. if _, ok := undeleteMap[v]; !ok {
  138. req.DeleteList = append(req.DeleteList, v)
  139. }
  140. }
  141. } else {
  142. if len(req.DeleteList) == 0 {
  143. br.Msg = "指标编码不能为空"
  144. br.ErrMsg = "指标编码不能为空"
  145. return
  146. }
  147. }
  148. err = services.DeleteSyncTask(req.DeleteList)
  149. if err != nil {
  150. br.Msg = "删除指标失败"
  151. br.ErrMsg = "删除指标失败,系统错误,Err:" + err.Error()
  152. return
  153. }
  154. respList, err := services.DeleteIndexes(req.DeleteList)
  155. if err != nil {
  156. br.Msg = "分类列表获取失败"
  157. br.ErrMsg = "分类列表获取失败,系统错误,Err:" + err.Error()
  158. return
  159. }
  160. br.Data = respList
  161. br.Ret = 200
  162. br.Msg = "删除指标成功"
  163. br.Success = true
  164. }