residual_analysis_controller.go 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298
  1. package residual_analysis
  2. import (
  3. "encoding/json"
  4. "eta/eta_api/controllers"
  5. "eta/eta_api/models"
  6. "eta/eta_api/models/residual_analysis_model"
  7. "eta/eta_api/services/residual_analysis_service"
  8. )
  9. // ResidualAnalysisController 残差分析
  10. type ResidualAnalysisController struct {
  11. controllers.BaseAuthController
  12. }
  13. // ResidualAnalysisPreview
  14. // @Title 残差分析预览
  15. // @Description 残差分析预览
  16. // @Success 200 {object} residual_analysis_model.ResidualAnalysisResp
  17. // @router /residual/analysis/preview [post]
  18. func (this *ResidualAnalysisController) ResidualAnalysisPreview() {
  19. br := new(models.BaseResponse).Init()
  20. defer func() {
  21. this.Data["json"] = br
  22. this.ServeJSON()
  23. }()
  24. sysUser := this.SysUser
  25. if sysUser == nil {
  26. br.Msg = "请登录"
  27. br.ErrMsg = "请登录,SysUser Is Empty"
  28. br.Ret = 408
  29. return
  30. }
  31. var req residual_analysis_model.ResidualAnalysisReq
  32. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  33. if err != nil {
  34. br.Msg = "参数解析异常!"
  35. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  36. return
  37. }
  38. if req.EdbInfoIdA == req.EdbInfoIdB {
  39. br.Msg = "自变量指标和因变量指标不能相同"
  40. br.ErrMsg = "自变量指标和因变量指标不能相同"
  41. return
  42. }
  43. resp, err := residual_analysis_service.ResidualAnalysisPreview(req)
  44. if err != nil {
  45. br.Ret = 403
  46. br.Msg = "获取失败"
  47. br.ErrMsg = err.Error()
  48. return
  49. }
  50. br.Ret = 200
  51. br.Success = true
  52. br.Msg = "获取成功"
  53. br.Data = resp
  54. }
  55. // ContrastPreview
  56. // @Title 对比指标预览
  57. // @Description 对比指标预览
  58. // @Success 200 {object} residual_analysis_model.ResidualAnalysisChartEdbInfoMapping
  59. // @router /contrast/preview [get]
  60. func (this *ResidualAnalysisController) ContrastPreview() {
  61. br := new(models.BaseResponse).Init()
  62. defer func() {
  63. this.Data["json"] = br
  64. this.ServeJSON()
  65. }()
  66. sysUser := this.SysUser
  67. if sysUser == nil {
  68. br.Msg = "请登录"
  69. br.ErrMsg = "请登录,SysUser Is Empty"
  70. br.Ret = 408
  71. return
  72. }
  73. indexCode := this.GetString("IndexCode")
  74. if indexCode == "" {
  75. br.Ret = 403
  76. br.Msg = "IndexCode不能为空"
  77. br.ErrMsg = "IndexCode不能为空"
  78. return
  79. }
  80. startTime := this.GetString("StartTime")
  81. if startTime == "" {
  82. br.Ret = 403
  83. br.Msg = "StartTime不能为空"
  84. br.ErrMsg = "StartTime不能为空"
  85. return
  86. }
  87. endTime := this.GetString("EndTime")
  88. if endTime == "" {
  89. br.Ret = 403
  90. br.Msg = "EndTime不能为空"
  91. br.ErrMsg = "EndTime不能为空"
  92. return
  93. }
  94. resp, err := residual_analysis_service.ContrastPreview(indexCode, startTime, endTime)
  95. if err != nil {
  96. return
  97. }
  98. br.Ret = 200
  99. br.Success = true
  100. br.Msg = "获取成功"
  101. br.Data = resp
  102. }
  103. // SaveResidualAnalysis
  104. // @Title 保存残差分析指标
  105. // @Description 保存残差分析指标
  106. // @Success 200
  107. // @router /save/residual/analysis [post]
  108. func (this *ResidualAnalysisController) SaveResidualAnalysis() {
  109. br := new(models.BaseResponse).Init()
  110. defer func() {
  111. this.Data["json"] = br
  112. this.ServeJSON()
  113. }()
  114. sysUser := this.SysUser
  115. if sysUser == nil {
  116. br.Msg = "请登录"
  117. br.ErrMsg = "请登录,SysUser Is Empty"
  118. br.Ret = 408
  119. return
  120. }
  121. var req residual_analysis_model.ResidualAnalysisIndexSaveReq
  122. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  123. if err != nil {
  124. br.Msg = "参数解析异常!"
  125. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  126. return
  127. }
  128. if req.ClassifyId == 0 {
  129. br.Msg = "分类id不能为空"
  130. br.ErrMsg = "分类id不能为空"
  131. return
  132. }
  133. if req.Source == 0 {
  134. br.Msg = "来源不能为空"
  135. br.ErrMsg = "来源不能为空"
  136. return
  137. }
  138. err = residual_analysis_service.SaveResidualAnalysis(req, sysUser)
  139. if err != nil {
  140. br.Ret = 403
  141. br.Msg = err.Error()
  142. br.ErrMsg = err.Error()
  143. return
  144. }
  145. br.Ret = 200
  146. br.Success = true
  147. br.Msg = "添加成功"
  148. }
  149. // SaveResidualAnalysisConfig
  150. // @Title 保存残差指标配置
  151. // @Description 保存残差指标配置
  152. // @Success 200
  153. // @router /save/residual/analysis/config [post]
  154. func (this *ResidualAnalysisController) SaveResidualAnalysisConfig() {
  155. br := new(models.BaseResponse).Init()
  156. defer func() {
  157. this.Data["json"] = br
  158. this.ServeJSON()
  159. }()
  160. sysUser := this.SysUser
  161. if sysUser == nil {
  162. br.Msg = "请登录"
  163. br.ErrMsg = "请登录,SysUser Is Empty"
  164. br.Ret = 408
  165. return
  166. }
  167. var req residual_analysis_model.ResidualAnalysisReq
  168. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  169. if err != nil {
  170. br.Msg = "参数解析异常!"
  171. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  172. return
  173. }
  174. configId, err := residual_analysis_service.SaveResidualAnalysisConfig(req, sysUser)
  175. if err != nil {
  176. br.Ret = 403
  177. br.Msg = "保存失败"
  178. br.ErrMsg = err.Error()
  179. return
  180. }
  181. br.Ret = 200
  182. br.Success = true
  183. br.Msg = "添加成功"
  184. br.Data = configId
  185. }
  186. // ResidualAnalysisDetail
  187. // @Title 残差分析指标详情
  188. // @Description 残差分析指标详情
  189. // @Success 200 {object} []*data_manage.EdbInfoList
  190. // @router /residual/analysis/detail [get]
  191. func (this *ResidualAnalysisController) ResidualAnalysisDetail() {
  192. br := new(models.BaseResponse).Init()
  193. defer func() {
  194. this.Data["json"] = br
  195. this.ServeJSON()
  196. }()
  197. sysUser := this.SysUser
  198. if sysUser == nil {
  199. br.Msg = "请登录"
  200. br.ErrMsg = "请登录,SysUser Is Empty"
  201. br.Ret = 408
  202. return
  203. }
  204. EdbInfoId, err := this.GetInt("EdbInfoId")
  205. if err != nil {
  206. br.Msg = "EdbInfoId参数异常!"
  207. br.ErrMsg = "EdbInfoId参数解析失败,Err:" + err.Error()
  208. }
  209. if EdbInfoId <= 0 {
  210. br.Msg = "EdbInfoId参数异常!"
  211. br.ErrMsg = "EdbInfoId参数异常!"
  212. }
  213. resp, err := residual_analysis_service.ResidualAnalysisDetail(EdbInfoId)
  214. if err != nil {
  215. br.Msg = "获取失败"
  216. br.ErrMsg = err.Error()
  217. br.Ret = 403
  218. return
  219. }
  220. br.Ret = 200
  221. br.Success = true
  222. br.Msg = "获取成功"
  223. br.Data = resp
  224. }
  225. // CheckResidualAnalysisExist
  226. // @Title 校验残差指标是否存在
  227. // @Description 校验残差指标是否存在
  228. // @Success 200 {object}
  229. // @router /check/residual/analysis/exist [get]
  230. func (this *ResidualAnalysisController) CheckResidualAnalysisExist() {
  231. br := new(models.BaseResponse).Init()
  232. defer func() {
  233. this.Data["json"] = br
  234. this.ServeJSON()
  235. }()
  236. sysUser := this.SysUser
  237. if sysUser == nil {
  238. br.Msg = "请登录"
  239. br.ErrMsg = "请登录,SysUser Is Empty"
  240. br.Ret = 408
  241. return
  242. }
  243. configId, err := this.GetInt("ConfigId")
  244. if err != nil {
  245. br.Msg = "EdbInfoId参数异常!"
  246. br.ErrMsg = "EdbInfoId参数解析失败,Err:" + err.Error()
  247. }
  248. if configId <= 0 {
  249. br.Msg = "ConfigId参数异常!"
  250. br.ErrMsg = "ConfigId参数异常!"
  251. }
  252. resp, err := residual_analysis_service.CheckResidualAnalysisExist(configId)
  253. if err != nil {
  254. br.Msg = "获取失败"
  255. br.ErrMsg = err.Error()
  256. br.Ret = 403
  257. return
  258. }
  259. br.Ret = 200
  260. br.Success = true
  261. br.Msg = "获取成功"
  262. br.Data = resp
  263. }