sci_hq_data.go 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. package data_manage
  2. import (
  3. "encoding/json"
  4. "eta/eta_api/controllers"
  5. "eta/eta_api/models"
  6. "eta/eta_api/models/data_manage"
  7. "eta/eta_api/models/data_manage/request"
  8. "eta/eta_api/services/data"
  9. )
  10. type SciHqDataController struct {
  11. controllers.BaseAuthController
  12. }
  13. // @Title 卓创红期数据分类
  14. // @Description 卓创红期数据分类接口
  15. // @Success 200 {object} data_manage.SciClassify
  16. // @router /sci_hq/classify [get]
  17. func (this *SciHqDataController) Classify() {
  18. br := new(models.BaseResponse).Init()
  19. defer func() {
  20. this.Data["json"] = br
  21. this.ServeJSON()
  22. }()
  23. classifyList, err := data_manage.GetSciHqClassifyAll()
  24. if err != nil {
  25. br.Msg = "查询失败"
  26. br.ErrMsg = "查询失败, Err:" + err.Error()
  27. return
  28. }
  29. initClassify := &data_manage.BaseFromSciHqClassifyItem{
  30. ClassifyId: 0,
  31. ClassifyName: "未分类",
  32. ClassifyNameEn: "Unclassified",
  33. ParentId: 0,
  34. Level: 1,
  35. Sort: 0,
  36. Children: nil,
  37. }
  38. finalList := make([]*data_manage.BaseFromSciHqClassifyItem, 0)
  39. classifyTree := getSciHqClassifyTree(classifyList, 0)
  40. finalList = append(finalList, initClassify)
  41. finalList = append(finalList, classifyTree...)
  42. br.Msg = "查询成功"
  43. br.Data = finalList
  44. br.Success = true
  45. br.Ret = 200
  46. }
  47. // AddSciClassify
  48. // @Title 新增分类
  49. // @Description 新增分类接口
  50. // @Param request body data_manage.AddBaseFromSciClassifyReq true "type json string"
  51. // @Success 200 Ret=200 保存成功
  52. // @router /sci_hq/classify/add [post]
  53. func (this *SciHqDataController) AddClassify() {
  54. br := new(models.BaseResponse).Init()
  55. defer func() {
  56. this.Data["json"] = br
  57. this.ServeJSON()
  58. }()
  59. var req request.AddBaseFromSciHqClassifyReq
  60. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  61. if err != nil {
  62. br.Msg = "参数解析异常!"
  63. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  64. return
  65. }
  66. if req.ClassifyName == "" {
  67. br.Msg = "请输入分类名称"
  68. return
  69. }
  70. if req.ParentId < 0 {
  71. br.Msg = "操作异常"
  72. return
  73. }
  74. ok, err := data.AddSciHqClassify(req.ClassifyName, this.Lang, req.ParentId)
  75. if err != nil {
  76. br.Msg = "添加失败"
  77. br.ErrMsg = "添加失败,Err:" + err.Error()
  78. return
  79. }
  80. if !ok {
  81. br.Msg = "添加失败"
  82. return
  83. }
  84. br.Msg = "添加成功"
  85. br.Success = true
  86. br.Ret = 200
  87. }
  88. // DelClassify
  89. // @Title 新增分类
  90. // @Description 新增分类接口
  91. // @Param request body data_manage.AddBaseFromSciClassifyReq true "type json string"
  92. // @Success 200 Ret=200 保存成功
  93. // @router /sci_hq/classify/del [post]
  94. func (this *SciHqDataController) DelClassify() {
  95. br := new(models.BaseResponse).Init()
  96. defer func() {
  97. this.Data["json"] = br
  98. this.ServeJSON()
  99. }()
  100. var req request.DelBaseFromSciReq
  101. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  102. if err != nil {
  103. br.Msg = "参数解析异常!"
  104. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  105. return
  106. }
  107. if req.BaseFromSciIndexId < 0 {
  108. br.Msg = "参数错误"
  109. br.IsSendEmail = false
  110. return
  111. }
  112. err, errMsg := data.DelSciData(req.BaseFromSciIndexId)
  113. if errMsg != `` {
  114. br.Msg = errMsg
  115. br.ErrMsg = errMsg
  116. if err != nil {
  117. br.ErrMsg = errMsg + ";Err:" + err.Error()
  118. } else {
  119. br.IsSendEmail = false
  120. }
  121. return
  122. }
  123. br.Ret = 200
  124. br.Msg = "删除成功"
  125. br.Success = true
  126. br.IsAddLog = true
  127. }
  128. // getSciHqClassifyTree 返回卓创红旗的树形结构
  129. func getSciHqClassifyTree(items []*data_manage.BaseFromSciHqClassifyItem, parentId int) []*data_manage.BaseFromSciHqClassifyItem {
  130. res := make([]*data_manage.BaseFromSciHqClassifyItem, 0)
  131. for _, item := range items {
  132. if item.ParentId == parentId {
  133. t := new(data_manage.BaseFromSciHqClassifyItem)
  134. t.ClassifyId = item.ClassifyId
  135. t.ClassifyName = item.ClassifyName
  136. t.ParentId = item.ParentId
  137. t.Level = item.Level
  138. t.Sort = item.Sort
  139. t.ModifyTime = item.ModifyTime
  140. t.CreateTime = item.CreateTime
  141. t.ClassifyNameEn = item.ClassifyNameEn
  142. t.Children = getSciHqClassifyTree(items, item.ClassifyId)
  143. res = append(res, t)
  144. }
  145. }
  146. return res
  147. }