base_from_mysteel_chemical.go 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781
  1. package controllers
  2. import (
  3. "encoding/json"
  4. "eta/eta_index_lib/logic"
  5. "eta/eta_index_lib/models"
  6. "eta/eta_index_lib/services"
  7. "eta/eta_index_lib/utils"
  8. "fmt"
  9. "strconv"
  10. "time"
  11. )
  12. // MySteelChemicalController 钢联化工
  13. type MySteelChemicalController struct {
  14. BaseAuthController
  15. }
  16. // Add
  17. // @Title 新增钢联化工指标接口
  18. // @Description 新增钢联化工指标接口
  19. // @Success 200 {object} models.AddEdbInfoReq
  20. // @router /add [post]
  21. func (this *MySteelChemicalController) Add() {
  22. br := new(models.BaseResponse).Init()
  23. var cacheKey string
  24. defer func() {
  25. utils.Rc.Delete(cacheKey)
  26. this.Data["json"] = br
  27. this.ServeJSON()
  28. }()
  29. source := utils.DATA_SOURCE_MYSTEEL_CHEMICAL
  30. var req models.AddEdbInfoReq
  31. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  32. if err != nil {
  33. br.Msg = "参数解析异常!"
  34. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  35. return
  36. }
  37. if req.EdbCode == "" {
  38. br.Msg = "请输入指标编码!"
  39. br.ErrMsg = "请输入指标编码,指标编码为空"
  40. return
  41. }
  42. cacheKey = utils.CACHE_EDB_DATA_ADD + strconv.Itoa(source) + "_" + req.EdbCode
  43. if !utils.Rc.IsExist(cacheKey) {
  44. utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
  45. err = models.AddEdbDataFromMysteelChemical(req.EdbCode)
  46. if err != nil {
  47. br.Msg = "获取指标信息失败!"
  48. br.ErrMsg = "获取指标信息失败 AddEdbDataFromMysteelChemical,Err:" + err.Error()
  49. return
  50. }
  51. br.Ret = 200
  52. br.Success = true
  53. br.Msg = "获取成功"
  54. } else {
  55. br.Ret = 501
  56. br.Success = true
  57. br.Msg = "系统处理中,请稍后重试"
  58. }
  59. }
  60. // Refresh
  61. // @Title 刷新钢联化工指标接口
  62. // @Description 刷新钢联化工指标接口
  63. // @Success 200 {object} models.RefreshEdbInfoReq
  64. // @router /refresh [post]
  65. func (this *MySteelChemicalController) Refresh() {
  66. br := new(models.BaseResponse).Init()
  67. var cacheKey string
  68. defer func() {
  69. utils.Rc.Delete(cacheKey)
  70. this.Data["json"] = br
  71. this.ServeJSON()
  72. }()
  73. source := utils.DATA_SOURCE_MYSTEEL_CHEMICAL
  74. var req models.RefreshEdbInfoReq
  75. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  76. if err != nil {
  77. br.Msg = "参数解析异常!"
  78. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  79. return
  80. }
  81. if req.EdbCode == "" {
  82. br.Msg = "请输入指标编码!"
  83. br.ErrMsg = "请输入指标编码,指标编码为空"
  84. return
  85. }
  86. if req.EdbInfoId <= 0 {
  87. br.Msg = "请输入指标ID!"
  88. br.ErrMsg = "请输入指标ID"
  89. return
  90. }
  91. // 获取指标详情
  92. edbInfo, err := models.GetEdbInfoByEdbCode(source, req.EdbCode)
  93. if err != nil {
  94. br.Msg = "指标不存在!"
  95. br.ErrMsg = "指标不存在"
  96. return
  97. }
  98. cacheKey = utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(source) + "_" + req.EdbCode
  99. if utils.Rc.IsExist(cacheKey) {
  100. br.Ret = 501
  101. br.Success = true
  102. br.Msg = "系统处理中,请稍后重试"
  103. return
  104. }
  105. utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
  106. err = models.RefreshEdbDataFromMysteelChemical(req.EdbInfoId, req.EdbCode, req.StartDate)
  107. if err != nil && err.Error() != utils.ErrNoRow() {
  108. br.Msg = "刷新指标信息失败!"
  109. br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromMysteel,Err:" + err.Error()
  110. return
  111. }
  112. // 更新指标最大最小值
  113. err, errMsg := models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
  114. if err != nil {
  115. br.Msg = errMsg
  116. br.ErrMsg = err.Error()
  117. return
  118. }
  119. // 更新ES
  120. go logic.UpdateEs(edbInfo.EdbInfoId)
  121. br.Ret = 200
  122. br.Success = true
  123. br.Msg = "获取成功"
  124. }
  125. // @Title 查询刷新钢联指标的接口
  126. // @Description 查询刷新钢联指标的接口
  127. // @Success 200 {object} models.CheckDeleteClassifyResp
  128. // @router /query/refresh [post]
  129. func (this *MySteelChemicalController) QueryRefresh() {
  130. br := new(models.BaseResponse).Init()
  131. defer func() {
  132. this.Data["json"] = br
  133. this.ServeJSON()
  134. }()
  135. mysteelIndex := new(models.BaseFromMysteelChemicalIndex)
  136. list, err := mysteelIndex.GetIndexRefreshAllByMergeFile()
  137. if err != nil && err.Error() != utils.ErrNoRow() {
  138. br.Msg = "获取失败!"
  139. br.ErrMsg = "获取失败,Err:" + err.Error()
  140. return
  141. }
  142. if list == nil {
  143. list = make([]*models.BaseFromMysteelChemicalIndex, 0)
  144. }
  145. br.Ret = 200
  146. br.Data = list
  147. br.Success = true
  148. br.Msg = "获取成功"
  149. }
  150. // @Title 处理钢联指标的接口
  151. // @Description 处理钢联指标的接口
  152. // @Success 200 {object} models.HandleMysteelIndexResp
  153. // @router /handle/mysteel/index [post]
  154. func (this *MySteelChemicalController) HandleMysteelIndex() {
  155. br := new(models.BaseResponse).Init()
  156. defer func() {
  157. this.Data["json"] = br
  158. this.ServeJSON()
  159. }()
  160. body := this.Ctx.Input.RequestBody
  161. var req models.HandleMysteelIndexResp
  162. err := json.Unmarshal(body, &req)
  163. if err != nil {
  164. br.Msg = "参数解析异常!"
  165. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  166. return
  167. }
  168. err = services.HandleMysteelIndex(&req)
  169. if err != nil {
  170. fmt.Println("HandleMysteelIndex Err:" + err.Error())
  171. br.Msg = "处理失败"
  172. br.ErrMsg = "处理失败,Err:" + err.Error()
  173. return
  174. }
  175. br.Ret = 200
  176. br.Success = true
  177. br.Msg = "处理成功"
  178. }
  179. // GetMaxFileIndex
  180. // @Title 获取最大的文件编号下标
  181. // @Description 获取最大的文件编号下标
  182. // @Success 200 {object} models.HandleMysteelIndexResp
  183. // @router /getMaxFileIndex [post]
  184. func (this *MySteelChemicalController) GetMaxFileIndex() {
  185. br := new(models.BaseResponse).Init()
  186. defer func() {
  187. this.Data["json"] = br
  188. this.ServeJSON()
  189. }()
  190. var req models.GetMaxFileIndexReq
  191. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  192. if err != nil {
  193. br.Msg = "参数解析异常!"
  194. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  195. return
  196. }
  197. indexObj := new(models.BaseFromMysteelChemicalIndex)
  198. // 获取最大的文件编号下标
  199. item, err := indexObj.GetMaxFileIndex(req.Frequency)
  200. if err != nil {
  201. return
  202. }
  203. br.Data = item
  204. br.Ret = 200
  205. br.Success = true
  206. br.Msg = "处理成功"
  207. }
  208. // GetNoMergeIndexByFrequencyCount
  209. // @Title 获取未合并的指标总数量
  210. // @Description 获取未合并的指标总数量
  211. // @Success 200 {object} models.HandleMysteelIndexResp
  212. // @router /getNoMergeIndexByFrequencyCount [post]
  213. func (this *MySteelChemicalController) GetNoMergeIndexByFrequencyCount() {
  214. br := new(models.BaseResponse).Init()
  215. defer func() {
  216. this.Data["json"] = br
  217. this.ServeJSON()
  218. }()
  219. var req models.GetMaxFileIndexReq
  220. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  221. if err != nil {
  222. br.Msg = "参数解析异常!"
  223. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  224. return
  225. }
  226. indexObj := new(models.BaseFromMysteelChemicalIndex)
  227. // 获取未合并的指标总数量
  228. indexTotal, err := indexObj.GetNoMergeIndexByFrequencyCount(req.Frequency)
  229. if err != nil {
  230. return
  231. }
  232. br.Data = indexTotal
  233. br.Ret = 200
  234. br.Success = true
  235. br.Msg = "处理成功"
  236. }
  237. // GetNoMergeIndexByFrequencyPage
  238. // @Title 获取未合并的指标列表
  239. // @Description 获取未合并的指标列表
  240. // @Success 200 {object} models.HandleMysteelIndexResp
  241. // @router /getNoMergeIndexByFrequencyPage [post]
  242. func (this *MySteelChemicalController) GetNoMergeIndexByFrequencyPage() {
  243. br := new(models.BaseResponse).Init()
  244. defer func() {
  245. this.Data["json"] = br
  246. this.ServeJSON()
  247. }()
  248. var req models.GetNoMergeIndexByFrequencyPageReq
  249. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  250. if err != nil {
  251. br.Msg = "参数解析异常!"
  252. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  253. return
  254. }
  255. indexObj := new(models.BaseFromMysteelChemicalIndex)
  256. // 获取未合并的指标总数量
  257. indexTotal, err := indexObj.GetNoMergeIndexByFrequencyPage(req.Frequency, req.Limit)
  258. if err != nil {
  259. return
  260. }
  261. br.Data = indexTotal
  262. br.Ret = 200
  263. br.Success = true
  264. br.Msg = "处理成功"
  265. }
  266. // GetIndexCountByMergeFilePath
  267. // @Title 获取该文件下标已经存在多少的指标
  268. // @Description 获取该文件下标已经存在多少的指标
  269. // @Success 200 {object} models.HandleMysteelIndexResp
  270. // @router /getIndexCountByMergeFilePath [post]
  271. func (this *MySteelChemicalController) GetIndexCountByMergeFilePath() {
  272. br := new(models.BaseResponse).Init()
  273. defer func() {
  274. this.Data["json"] = br
  275. this.ServeJSON()
  276. }()
  277. var req models.GetIndexCountByMergeFilePathReq
  278. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  279. if err != nil {
  280. br.Msg = "参数解析异常!"
  281. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  282. return
  283. }
  284. if req.MergeFilePath == "" {
  285. br.Msg = "参数有误"
  286. br.ErrMsg = "参数有误, 文件路径有误"
  287. return
  288. }
  289. indexObj := new(models.BaseFromMysteelChemicalIndex)
  290. indexTotal, err := indexObj.GetIndexCountByMergeFilePath(req.MergeFilePath)
  291. if err != nil {
  292. return
  293. }
  294. br.Data = indexTotal
  295. br.Ret = 200
  296. br.Success = true
  297. br.Msg = "获取成功"
  298. }
  299. // GetIndexCreate
  300. // @Title 获取两分钟前新增的指标
  301. // @Description 获取两分钟前新增的指标
  302. // @Success 200 {object} models.BaseFromMysteelChemicalIndex
  303. // @router /getIndexCreate [post]
  304. func (this *MySteelChemicalController) GetIndexCreate() {
  305. br := new(models.BaseResponse).Init()
  306. defer func() {
  307. this.Data["json"] = br
  308. this.ServeJSON()
  309. }()
  310. indexObj := new(models.BaseFromMysteelChemicalIndex)
  311. items, err := indexObj.GetIndexCreate()
  312. if err != nil {
  313. br.Msg = "获取失败"
  314. br.ErrMsg = "获取指标失败, Err: " + err.Error()
  315. return
  316. }
  317. if items == nil {
  318. items = make([]*models.BaseFromMysteelChemicalIndex, 0)
  319. }
  320. br.Data = items
  321. br.Ret = 200
  322. br.Success = true
  323. br.Msg = "获取成功"
  324. }
  325. // GetIndexRefreshMethanolByMergeFile
  326. // @Title 获取需要刷新的甲醇文件
  327. // @Description 获取需要刷新的甲醇文件
  328. // @Success 200 {object} models.BaseFromMysteelChemicalIndex
  329. // @router /getIndexRefreshMethanolByMergeFile [post]
  330. func (this *MySteelChemicalController) GetIndexRefreshMethanolByMergeFile() {
  331. br := new(models.BaseResponse).Init()
  332. defer func() {
  333. this.Data["json"] = br
  334. this.ServeJSON()
  335. }()
  336. indexObj := new(models.BaseFromMysteelChemicalIndex)
  337. items, err := indexObj.GetIndexRefreshMethanolByMergeFile()
  338. if err != nil {
  339. br.Msg = "获取失败"
  340. br.ErrMsg = "获取指标失败, Err: " + err.Error()
  341. return
  342. }
  343. if items == nil {
  344. items = make([]*models.BaseFromMysteelChemicalIndex, 0)
  345. }
  346. br.Data = items
  347. br.Ret = 200
  348. br.Success = true
  349. br.Msg = "获取成功"
  350. }
  351. // GetIndexRefreshMethanolByTimely
  352. // @Title 获取需要及时刷新的文件
  353. // @Description 获取需要及时刷新的文件
  354. // @Success 200 {object} models.BaseFromMysteelChemicalIndex
  355. // @router /getIndexRefreshMethanolByTimely [post]
  356. func (this *MySteelChemicalController) GetIndexRefreshMethanolByTimely() {
  357. br := new(models.BaseResponse).Init()
  358. defer func() {
  359. this.Data["json"] = br
  360. this.ServeJSON()
  361. }()
  362. indexObj := new(models.BaseFromMysteelChemicalIndex)
  363. items, err := indexObj.GetIndexRefreshMethanolByTimely()
  364. if err != nil {
  365. br.Msg = "获取失败"
  366. br.ErrMsg = "获取指标失败, Err: " + err.Error()
  367. return
  368. }
  369. if items == nil {
  370. items = make([]*models.BaseFromMysteelChemicalIndex, 0)
  371. }
  372. br.Data = items
  373. br.Ret = 200
  374. br.Success = true
  375. br.Msg = "获取成功"
  376. }
  377. // GetIndexByFrequency
  378. // @Title 根据频率获取指标
  379. // @Description 根据频率获取指标
  380. // @Success 200 {object} models.BaseFromMysteelChemicalIndex
  381. // @router /getIndexByFrequency [post]
  382. func (this *MySteelChemicalController) GetIndexByFrequency() {
  383. br := new(models.BaseResponse).Init()
  384. defer func() {
  385. this.Data["json"] = br
  386. this.ServeJSON()
  387. }()
  388. var req models.GetIndexByFrequencyReq
  389. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  390. if err != nil {
  391. br.Msg = "参数解析异常!"
  392. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  393. return
  394. }
  395. if req.Frequency == "" {
  396. br.Msg = "参数有误"
  397. br.ErrMsg = "参数有误"
  398. return
  399. }
  400. indexObj := new(models.BaseFromMysteelChemicalIndex)
  401. items, err := indexObj.GetIndexByFrequency(req.Frequency)
  402. if err != nil {
  403. br.Msg = "获取失败"
  404. br.ErrMsg = "获取指标失败, Err: " + err.Error()
  405. return
  406. }
  407. if items == nil {
  408. items = make([]*models.BaseFromMysteelChemicalIndex, 0)
  409. }
  410. br.Data = items
  411. br.Ret = 200
  412. br.Success = true
  413. br.Msg = "获取成功"
  414. }
  415. // GetIndexRefreshWeek
  416. // @Title 根据周获取指标
  417. // @Description 根据周获取指标
  418. // @Success 200 {object} models.BaseFromMysteelChemicalIndex
  419. // @router /getIndexRefreshWeek [post]
  420. func (this *MySteelChemicalController) GetIndexRefreshWeek() {
  421. br := new(models.BaseResponse).Init()
  422. defer func() {
  423. this.Data["json"] = br
  424. this.ServeJSON()
  425. }()
  426. var req models.GetIndexRefreshWeekReq
  427. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  428. if err != nil {
  429. br.Msg = "参数解析异常!"
  430. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  431. return
  432. }
  433. if req.NowWeekZn == "" || req.StartTime == "" || req.EndTime == "" {
  434. br.Msg = "参数有误"
  435. br.ErrMsg = "参数有误"
  436. return
  437. }
  438. indexObj := new(models.BaseFromMysteelChemicalIndex)
  439. items, err := indexObj.GetIndexRefreshWeek(req.NowWeekZn, req.StartTime, req.EndTime)
  440. if err != nil {
  441. br.Msg = "获取失败"
  442. br.ErrMsg = "获取指标失败, Err: " + err.Error()
  443. return
  444. }
  445. if items == nil {
  446. items = make([]*models.BaseFromMysteelChemicalIndex, 0)
  447. }
  448. br.Data = items
  449. br.Ret = 200
  450. br.Success = true
  451. br.Msg = "获取成功"
  452. }
  453. // UpdateIndex
  454. // @Title 更新指标
  455. // @Description 更新指标
  456. // @Success 200 string "操作成功"
  457. // @router /updateIndex [post]
  458. //func (this *MySteelChemicalController) UpdateIndex() {
  459. // br := new(models.BaseResponse).Init()
  460. // defer func() {
  461. // this.Data["json"] = br
  462. // this.ServeJSON()
  463. // }()
  464. // var req models.UpdateIndexReq
  465. // err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  466. // if err != nil {
  467. // br.Msg = "参数解析异常!"
  468. // br.ErrMsg = "参数解析失败,Err:" + err.Error()
  469. // return
  470. // }
  471. // if req.Item == nil {
  472. // br.Msg = "参数有误"
  473. // br.ErrMsg = "参数有误, 指标信息有误"
  474. // return
  475. // }
  476. // if len(req.UpdateCols) == 0 {
  477. // br.Msg = "参数有误"
  478. // br.ErrMsg = "参数有误, 无更新字段"
  479. // return
  480. // }
  481. //
  482. // // 更新指标
  483. // indexObj := new(models.BaseFromMysteelChemicalIndex)
  484. // err = indexObj.UpdateIndex(req.Item, req.UpdateCols)
  485. // if err != nil {
  486. // br.Msg = "操作失败"
  487. // br.ErrMsg = "批量更新指标失败, MultiUpdateIndexByIndexCode err: " + err.Error()
  488. // return
  489. // }
  490. //
  491. // br.Ret = 200
  492. // br.Success = true
  493. // br.Msg = "操作成功"
  494. //}
  495. // MultiUpdateIndex
  496. // @Title 批量更新指标
  497. // @Description 批量更新指标
  498. // @Success 200 string "操作成功"
  499. // @router /multiUpdateIndex [post]
  500. func (this *MySteelChemicalController) MultiUpdateIndex() {
  501. br := new(models.BaseResponse).Init()
  502. defer func() {
  503. this.Data["json"] = br
  504. this.ServeJSON()
  505. }()
  506. var req []models.UpdateIndexReq
  507. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  508. if err != nil {
  509. br.Msg = "参数解析异常!"
  510. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  511. return
  512. }
  513. if len(req) == 0 {
  514. br.Msg = "参数有误"
  515. br.ErrMsg = "参数有误, 无指标需要更新"
  516. return
  517. }
  518. // 批量更新指标
  519. indexObj := new(models.BaseFromMysteelChemicalIndex)
  520. err = indexObj.MultiUpdateIndex(req)
  521. if err != nil {
  522. br.Msg = "操作失败"
  523. br.ErrMsg = "批量更新指标失败, MultiUpdateIndex err: " + err.Error()
  524. return
  525. }
  526. br.Ret = 200
  527. br.Success = true
  528. br.Msg = "操作成功"
  529. }
  530. // @Title 处理钢联指标的接口
  531. // @Description 处理钢联指标的接口
  532. // @Success 200 {object} models.AddMysteelIndexResp
  533. // @router /add/mysteel/index [post]
  534. func (this *MySteelChemicalController) AddMysteelIndex() {
  535. br := new(models.BaseResponse).Init()
  536. defer func() {
  537. this.Data["json"] = br
  538. this.ServeJSON()
  539. }()
  540. var req models.AddMysteelIndexResp
  541. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  542. if err != nil {
  543. br.Msg = "参数解析异常!"
  544. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  545. return
  546. }
  547. mysteelIndexObj := new(models.BaseFromMysteelChemicalIndex)
  548. indexItem, err := mysteelIndexObj.GetIndexItem(req.EdbCode)
  549. var isAdd bool
  550. if err != nil {
  551. if err.Error() == utils.ErrNoRow() {
  552. isAdd = true
  553. } else {
  554. br.Msg = "判断指标是否存在失败"
  555. br.ErrMsg = "判断指标是否存在失败,Err:" + err.Error()
  556. return
  557. }
  558. }
  559. if indexItem == nil {
  560. isAdd = true
  561. }
  562. if isAdd {
  563. mysteelIndexObj.IndexCode = req.EdbCode
  564. mysteelIndexObj.BaseFromMysteelChemicalClassifyId = req.BaseFromMysteelChemicalClassifyId
  565. mysteelIndexObj.SysUserId = req.SysUserId
  566. mysteelIndexObj.SysUserRealName = req.SysUserRealName
  567. err = mysteelIndexObj.Add()
  568. if err != nil {
  569. br.Msg = "新增指标失败"
  570. br.ErrMsg = "新增指标失败,Err:" + err.Error()
  571. return
  572. }
  573. }
  574. br.Ret = 200
  575. br.Success = true
  576. br.Msg = "新增成功"
  577. }
  578. // GetIndexDetailByCode
  579. // @Title 获取指标详情
  580. // @Description 获取指标详情
  581. // @Success 200 {object} models.GetIndexDetailReq
  582. // @router /index_detail [post]
  583. func (this *MySteelChemicalController) GetIndexDetailByCode() {
  584. br := new(models.BaseResponse).Init()
  585. defer func() {
  586. this.Data["json"] = br
  587. this.ServeJSON()
  588. }()
  589. var req models.GetIndexDetailReq
  590. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  591. if err != nil {
  592. br.Msg = "参数解析异常!"
  593. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  594. return
  595. }
  596. if req.IndexCode == "" {
  597. br.Msg = "参数有误"
  598. br.ErrMsg = "参数有误"
  599. return
  600. }
  601. indexObj := new(models.BaseFromMysteelChemicalIndex)
  602. item, err := indexObj.GetIndexItem(req.IndexCode)
  603. if err != nil {
  604. br.Msg = "获取失败"
  605. br.ErrMsg = "获取指标失败, Err: " + err.Error()
  606. return
  607. }
  608. br.Data = item
  609. br.Ret = 200
  610. br.Success = true
  611. br.Msg = "获取成功"
  612. }
  613. // @Title 根据频度获取指标总数量
  614. // @Description 根据频度获取指标总数量
  615. // @Success 200 {object} models.HandleMysteelIndexResp
  616. // @router /getIndexCountByFrequency [post]
  617. func (this *MySteelChemicalController) GetIndexCountByFrequency() {
  618. br := new(models.BaseResponse).Init()
  619. defer func() {
  620. this.Data["json"] = br
  621. this.ServeJSON()
  622. }()
  623. var req models.GetMaxFileIndexReq
  624. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  625. if err != nil {
  626. br.Msg = "参数解析异常!"
  627. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  628. return
  629. }
  630. var condition string
  631. var pars []interface{}
  632. if req.Frequency != "" {
  633. condition += ` AND frequency = ? `
  634. pars = append(pars, req.Frequency)
  635. }
  636. if req.EndDate != "" {
  637. condition += ` AND end_date < ? `
  638. pars = append(pars, req.EndDate)
  639. }
  640. condition += ` AND is_stop = 0 `
  641. indexObj := new(models.BaseFromMysteelChemicalIndex)
  642. // 获取未合并的指标总数量
  643. indexTotal, err := indexObj.GetIndexCountByFrequency(condition, pars)
  644. if err != nil {
  645. return
  646. }
  647. br.Data = indexTotal
  648. br.Ret = 200
  649. br.Success = true
  650. br.Msg = "处理成功"
  651. }
  652. // GetNoMergeIndexByFrequencyPage
  653. // @Title 获取未合并的指标列表
  654. // @Description 获取未合并的指标列表
  655. // @Success 200 {object} models.HandleMysteelIndexResp
  656. // @router /getIndexLimitByFrequency [post]
  657. func (this *MySteelChemicalController) GetIndexLimitByFrequency() {
  658. br := new(models.BaseResponse).Init()
  659. defer func() {
  660. this.Data["json"] = br
  661. this.ServeJSON()
  662. }()
  663. var req models.GetNoMergeIndexByFrequencyPageReq
  664. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  665. if err != nil {
  666. br.Msg = "参数解析异常!"
  667. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  668. return
  669. }
  670. indexObj := new(models.BaseFromMysteelChemicalIndex)
  671. // 获取未合并的指标总数量
  672. indexTotal, err := indexObj.GetIndexLimitByFrequency(req.Frequency, req.Limit)
  673. if err != nil {
  674. return
  675. }
  676. br.Data = indexTotal
  677. br.Ret = 200
  678. br.Success = true
  679. br.Msg = "处理成功"
  680. }
  681. // @Title 获取钢联指标分页数据
  682. // @Description 获取钢联指标分页数据
  683. // @Success 200 {object} models.HandleMysteelIndexResp
  684. // @router /getIndexPageByFrequency [post]
  685. func (this *MySteelChemicalController) GetIndexPageByFrequency() {
  686. br := new(models.BaseResponse).Init()
  687. defer func() {
  688. this.Data["json"] = br
  689. this.ServeJSON()
  690. }()
  691. var req models.GetIndexPageByFrequencyPageReq
  692. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  693. if err != nil {
  694. br.Msg = "参数解析异常!"
  695. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  696. return
  697. }
  698. var condition string
  699. var pars []interface{}
  700. if req.Frequency != "" {
  701. condition += ` AND frequency = ? `
  702. pars = append(pars, req.Frequency)
  703. }
  704. if req.EndDate != "" {
  705. condition += ` AND end_date < ? `
  706. pars = append(pars, req.EndDate)
  707. }
  708. condition += ` AND is_stop = 0 `
  709. indexObj := new(models.BaseFromMysteelChemicalIndex)
  710. // 获取未合并的指标总数量
  711. indexTotal, err := indexObj.GetIndexPageByFrequency(condition, pars, req.StartSize, req.PageSize)
  712. if err != nil {
  713. return
  714. }
  715. br.Data = indexTotal
  716. br.Ret = 200
  717. br.Success = true
  718. br.Msg = "处理成功"
  719. }