commodity_trade_base_index.go 63 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238
  1. package controllers
  2. import (
  3. "eta_gn/eta_api/models"
  4. "eta_gn/eta_api/models/data_manage"
  5. "eta_gn/eta_api/utils"
  6. "fmt"
  7. "github.com/rdlucklib/rdluck_tools/paging"
  8. "strconv"
  9. "strings"
  10. )
  11. type TradeCommonController struct {
  12. BaseAuthController
  13. }
  14. type Data []struct {
  15. Title string
  16. ItemList []ShanghaiList
  17. }
  18. type ShanghaiList struct {
  19. Code string
  20. Item []*data_manage.BaseFromTradeShanghaiIndex
  21. }
  22. type EicData struct {
  23. Country string
  24. Type string
  25. EicCode string
  26. ShortName string
  27. Name string
  28. Status string
  29. GasDayStartedOn string
  30. GasInStorage float64
  31. GasInStorageCode string
  32. Full float64
  33. FullCode string
  34. Trend float64
  35. TrendCode string
  36. Injection float64
  37. InjectionCode string
  38. Withdrawal float64
  39. WithdrawalCode string
  40. WorkingGasVolume float64
  41. WorkingGasVolumeCode string
  42. InjectionCapacity float64
  43. InjectionCapacityCode string
  44. WithdrawalCapacity float64
  45. WithdrawalCapacityCode string
  46. Info string
  47. Children []*data_manage.BaseFromTradeEicIndex
  48. }
  49. // ExchangeClassify
  50. // @title 获取交易所种类列表
  51. // @Description 获取交易所种类列表接口
  52. // @Param Exchange query string true "交易所名称"
  53. // @Success 200 {object} models.
  54. // @router /data/exchange/classify [get]
  55. func (this *TradeCommonController) ExchangeClassify() {
  56. br := new(models.BaseResponse).Init()
  57. defer func() {
  58. this.Data["json"] = br
  59. this.ServeJSON()
  60. }()
  61. exchange := this.GetString("Exchange")
  62. date := this.GetString("DataTime")
  63. var respItem [][]string
  64. latestData, err := data_manage.GetLatestDate(exchange)
  65. if err != nil {
  66. br.Msg = "获取失败"
  67. br.ErrMsg = "获取最新日期失败,Err:" + err.Error()
  68. return
  69. }
  70. if latestData == "" {
  71. br.Ret = 200
  72. br.Success = true
  73. br.Msg = "获取成功"
  74. br.Data = respItem
  75. return
  76. }
  77. if date == "" {
  78. date = latestData
  79. }
  80. classifyName, err := data_manage.GetExchangeClassify(exchange, date)
  81. if err != nil {
  82. br.Msg = "获取种类失败"
  83. br.ErrMsg = "获取种类失败,Err:" + err.Error()
  84. return
  85. }
  86. respItem = append(respItem, classifyName)
  87. respItem = append(respItem, []string{latestData})
  88. br.Ret = 200
  89. br.Success = true
  90. br.Msg = "获取成功"
  91. br.Data = respItem
  92. }
  93. // ExchangeClassifyContract
  94. // @title 获取交易所种类合约列表
  95. // @Description 获取交易所种类合约列表接口
  96. // @Param Exchange query string true "交易所名称"
  97. // @Param Classify query string true "种类名称"
  98. // @Param DataTime query string true "时间"
  99. // @Success 200 {object} models.
  100. // @router /data/exchange/classifyContract [get]
  101. func (this *TradeCommonController) ExchangeClassifyContract() {
  102. br := new(models.BaseResponse).Init()
  103. defer func() {
  104. this.Data["json"] = br
  105. this.ServeJSON()
  106. }()
  107. exchange := this.GetString("Exchange")
  108. classify := this.GetString("Classify")
  109. dataTime := this.GetString("DataTime")
  110. classifyName, err := data_manage.GetExchangeClassifyContract(exchange, classify, dataTime)
  111. if err != nil {
  112. br.Msg = "获取种类失败"
  113. br.ErrMsg = "获取种类失败,Err:" + err.Error()
  114. return
  115. }
  116. br.Ret = 200
  117. br.Success = true
  118. br.Msg = "获取成功"
  119. br.Data = classifyName
  120. }
  121. // ShfeDataList
  122. // @title 获取上期所列表
  123. // @Description 获取上期所列表接口
  124. // @Param Date query string true "查询日期"
  125. // @Param ClassifyName query string false "分类名称"
  126. // @Param ClassifyType query string false "分类合约"
  127. // @Success 200 {object} models.
  128. // @router /data/shfe [get]
  129. func (this *TradeCommonController) ShfeDataList() {
  130. br := new(models.BaseResponse).Init()
  131. defer func() {
  132. this.Data["json"] = br
  133. this.ServeJSON()
  134. }()
  135. date := this.GetString("Date")
  136. classifyName := this.GetString("ClassifyName")
  137. classifyType := this.GetString("ClassifyType")
  138. frequencyList, err := data_manage.GetBaseFromTradeIndexByParam("shanghai", date, classifyName, classifyType)
  139. if err != nil {
  140. br.Msg = "获取持仓排名失败"
  141. br.ErrMsg = "获取持仓排名失败,Err:" + err.Error()
  142. return
  143. }
  144. var data Data
  145. var j, k int
  146. if len(frequencyList) == 0 {
  147. br.Ret = 200
  148. br.Success = true
  149. br.Msg = "获取成功"
  150. br.Data = data
  151. } else {
  152. if classifyName == "" {
  153. data = make(Data, 50)
  154. for i, item := range frequencyList {
  155. if item.DealCode == "" {
  156. item.DealValue = ""
  157. item.DealChange = ""
  158. }
  159. if item.BuyCode == "" {
  160. item.BuyValue = ""
  161. item.BuyChange = ""
  162. }
  163. if item.SoldCode == "" {
  164. item.SoldValue = ""
  165. item.SoldChange = ""
  166. }
  167. if data[j].Title == item.ClassifyName {
  168. if data[j].ItemList[k].Code == item.ClassifyType {
  169. data[j].ItemList[k].Item = append(data[j].ItemList[k].Item, item)
  170. continue
  171. }
  172. if i > 0 {
  173. k++
  174. }
  175. data[j].ItemList[k].Code = item.ClassifyType
  176. data[j].ItemList[k].Item = append(data[j].ItemList[k].Item, item)
  177. continue
  178. }
  179. if i != 0 {
  180. if k == 0 {
  181. data[j].ItemList = data[j].ItemList[:k+1]
  182. } else {
  183. data[j].ItemList = data[j].ItemList[:k]
  184. }
  185. j++
  186. k = 0
  187. }
  188. if data[j].ItemList == nil {
  189. list := make([]ShanghaiList, 930)
  190. data[j].ItemList = list
  191. }
  192. data[j].Title = item.ClassifyName
  193. data[j].ItemList[k].Code = item.ClassifyType
  194. data[j].ItemList[k].Item = append(data[j].ItemList[k].Item, item)
  195. }
  196. data = data[:j]
  197. br.Ret = 200
  198. br.Success = true
  199. br.Msg = "获取成功"
  200. br.Data = data
  201. } else {
  202. data = make(Data, 1)
  203. for i, item := range frequencyList {
  204. if item.DealCode == "" {
  205. item.DealValue = ""
  206. item.DealChange = ""
  207. }
  208. if item.BuyCode == "" {
  209. item.BuyValue = ""
  210. item.BuyChange = ""
  211. }
  212. if item.SoldCode == "" {
  213. item.SoldValue = ""
  214. item.SoldChange = ""
  215. }
  216. data[0].Title = classifyName
  217. if data[0].ItemList == nil {
  218. list := make([]ShanghaiList, 200)
  219. data[0].ItemList = list
  220. }
  221. if data[0].ItemList[k].Code == item.ClassifyType {
  222. data[0].ItemList[k].Item = append(data[0].ItemList[k].Item, item)
  223. continue
  224. }
  225. if i > 0 {
  226. k++
  227. }
  228. data[0].ItemList[k].Code = item.ClassifyType
  229. data[0].ItemList[k].Item = append(data[0].ItemList[k].Item, item)
  230. }
  231. data[0].ItemList = data[0].ItemList[:k+1]
  232. br.Ret = 200
  233. br.Success = true
  234. br.Msg = "获取成功"
  235. br.Data = data
  236. }
  237. }
  238. }
  239. // IneDataList
  240. // @title 获取上海国际能源交易所列表
  241. // @Description 获取上海国际能源交易所列表接口
  242. // @Param Date query string true "查询日期"
  243. // @Param ClassifyName query string false "分类名称"
  244. // @Param ClassifyType query string false "分类合约"
  245. // @Success 200 {object} models.
  246. // @router /data/ine [get]
  247. func (this *TradeCommonController) IneDataList() {
  248. br := new(models.BaseResponse).Init()
  249. defer func() {
  250. this.Data["json"] = br
  251. this.ServeJSON()
  252. }()
  253. date := this.GetString("Date")
  254. classifyName := this.GetString("ClassifyName")
  255. classifyType := this.GetString("ClassifyType")
  256. frequencyList, err := data_manage.GetBaseFromTradeIndexByParam("ine", date, classifyName, classifyType)
  257. if err != nil {
  258. br.Msg = "获取持仓排名失败"
  259. br.ErrMsg = "获取持仓排名失败,Err:" + err.Error()
  260. return
  261. }
  262. var data Data
  263. var k int
  264. if len(frequencyList) == 0 {
  265. br.Ret = 200
  266. br.Success = true
  267. br.Msg = "获取成功"
  268. br.Data = data
  269. } else {
  270. data = make(Data, 1)
  271. if len(frequencyList) > 20 {
  272. for i, item := range frequencyList {
  273. if item.DealCode == "" {
  274. item.DealValue = ""
  275. item.DealChange = ""
  276. }
  277. if item.BuyCode == "" {
  278. item.BuyValue = ""
  279. item.BuyChange = ""
  280. }
  281. if item.SoldCode == "" {
  282. item.SoldValue = ""
  283. item.SoldChange = ""
  284. }
  285. data[0].Title = classifyName
  286. if data[0].ItemList == nil {
  287. list := make([]ShanghaiList, 200)
  288. data[0].ItemList = list
  289. }
  290. if data[0].ItemList[k].Code == item.ClassifyType {
  291. data[0].ItemList[k].Item = append(data[0].ItemList[k].Item, item)
  292. continue
  293. }
  294. if i > 0 {
  295. k++
  296. }
  297. data[0].ItemList[k].Code = item.ClassifyType
  298. data[0].ItemList[k].Item = append(data[0].ItemList[k].Item, item)
  299. }
  300. data[0].ItemList = data[0].ItemList[:k+1]
  301. br.Ret = 200
  302. br.Success = true
  303. br.Msg = "获取成功"
  304. br.Data = data
  305. } else {
  306. for _, item := range frequencyList {
  307. if item.DealCode == "" {
  308. item.DealValue = ""
  309. item.DealChange = ""
  310. }
  311. if item.BuyCode == "" {
  312. item.BuyValue = ""
  313. item.BuyChange = ""
  314. }
  315. if item.SoldCode == "" {
  316. item.SoldValue = ""
  317. item.SoldChange = ""
  318. }
  319. data[0].Title = item.ClassifyName
  320. if data[0].ItemList == nil {
  321. list := make([]ShanghaiList, 1)
  322. data[0].ItemList = list
  323. }
  324. if data[0].ItemList[0].Code == item.ClassifyType {
  325. data[0].ItemList[0].Item = append(data[0].ItemList[0].Item, item)
  326. continue
  327. }
  328. //if i != 0 {
  329. // k++
  330. // fmt.Println(k)
  331. //}
  332. data[0].ItemList[0].Code = item.ClassifyType
  333. data[0].ItemList[0].Item = append(data[0].ItemList[0].Item, item)
  334. }
  335. //data[0].ItemList = data[0].ItemList[:k]
  336. br.Ret = 200
  337. br.Success = true
  338. br.Msg = "获取成功"
  339. br.Data = data
  340. }
  341. }
  342. }
  343. // CffexDataList
  344. // @title 获取中金所所列表
  345. // @Description 获取中金所列表接口
  346. // @Param Date query string true "查询日期"
  347. // @Param ClassifyName query string false "分类名称"
  348. // @Param ClassifyType query string false "分类合约"
  349. // @Success 200 {object} models.
  350. // @router /data/cffex [get]
  351. func (this *TradeCommonController) CffexDataList() {
  352. br := new(models.BaseResponse).Init()
  353. defer func() {
  354. this.Data["json"] = br
  355. this.ServeJSON()
  356. }()
  357. date := this.GetString("Date")
  358. date = strings.Replace(date, "-", "", -1)
  359. classifyName := this.GetString("ClassifyName")
  360. classifyType := this.GetString("ClassifyType")
  361. frequencyList, err := data_manage.GetBaseFromTradeIndexByParam("cffex", date, classifyName, classifyType)
  362. if err != nil {
  363. br.Msg = "获取持仓排名失败"
  364. br.ErrMsg = "获取持仓排名失败,Err:" + err.Error()
  365. return
  366. }
  367. var data Data
  368. var k int
  369. if len(frequencyList) == 0 {
  370. br.Ret = 200
  371. br.Success = true
  372. br.Msg = "获取成功"
  373. br.Data = data
  374. } else {
  375. data = make(Data, 1)
  376. if len(frequencyList) > 20 {
  377. for i, item := range frequencyList {
  378. if item.DealCode == "" {
  379. item.DealValue = ""
  380. item.DealChange = ""
  381. }
  382. if item.BuyCode == "" {
  383. item.BuyValue = ""
  384. item.BuyChange = ""
  385. }
  386. if item.SoldCode == "" {
  387. item.SoldValue = ""
  388. item.SoldChange = ""
  389. }
  390. data[0].Title = classifyName
  391. if data[0].ItemList == nil {
  392. list := make([]ShanghaiList, 200)
  393. data[0].ItemList = list
  394. }
  395. if data[0].ItemList[k].Code == item.ClassifyType {
  396. data[0].ItemList[k].Item = append(data[0].ItemList[k].Item, item)
  397. continue
  398. }
  399. if i > 0 {
  400. k++
  401. }
  402. data[0].ItemList[k].Code = item.ClassifyType
  403. data[0].ItemList[k].Item = append(data[0].ItemList[k].Item, item)
  404. }
  405. data[0].ItemList = data[0].ItemList[:k+1]
  406. br.Ret = 200
  407. br.Success = true
  408. br.Msg = "获取成功"
  409. br.Data = data
  410. } else {
  411. for _, item := range frequencyList {
  412. if item.DealCode == "" {
  413. item.DealValue = ""
  414. item.DealChange = ""
  415. }
  416. if item.BuyCode == "" {
  417. item.BuyValue = ""
  418. item.BuyChange = ""
  419. }
  420. if item.SoldCode == "" {
  421. item.SoldValue = ""
  422. item.SoldChange = ""
  423. }
  424. data[0].Title = item.ClassifyName
  425. if data[0].ItemList == nil {
  426. list := make([]ShanghaiList, 1)
  427. data[0].ItemList = list
  428. }
  429. if data[0].ItemList[0].Code == item.ClassifyType {
  430. data[0].ItemList[0].Item = append(data[0].ItemList[0].Item, item)
  431. continue
  432. }
  433. //if i != 0 {
  434. // k++
  435. // fmt.Println(k)
  436. //}
  437. data[0].ItemList[0].Code = item.ClassifyType
  438. data[0].ItemList[0].Item = append(data[0].ItemList[0].Item, item)
  439. }
  440. //data[0].ItemList = data[0].ItemList[:20]
  441. br.Ret = 200
  442. br.Success = true
  443. br.Msg = "获取成功"
  444. br.Data = data
  445. }
  446. }
  447. }
  448. // ZhengzhouDataList
  449. // @title 获取郑州交易所列表
  450. // @Description 获取郑州交易所列表接口
  451. // @Param Date query string true "查询日期"
  452. // @Param ClassifyName query string false "分类名称"
  453. // @Param ClassifyType query string false "分类合约"
  454. // @Success 200 {object} models.
  455. // @router /data/zhengzhou [get]
  456. func (this *TradeCommonController) ZhengzhouDataList() {
  457. br := new(models.BaseResponse).Init()
  458. defer func() {
  459. this.Data["json"] = br
  460. this.ServeJSON()
  461. }()
  462. date := this.GetString("Date")
  463. fmt.Println(date)
  464. date = strings.Replace(date, "-", "", -1)
  465. fmt.Println(date)
  466. classifyName := this.GetString("ClassifyName")
  467. classifyType := this.GetString("ClassifyType")
  468. frequencyList, err := data_manage.GetBaseFromTradeIndexByParam("zhengzhou", date, classifyName, classifyType)
  469. if err != nil {
  470. br.Msg = "获取持仓排名失败"
  471. br.ErrMsg = "获取持仓排名失败,Err:" + err.Error()
  472. return
  473. }
  474. var data Data
  475. var k int
  476. if len(frequencyList) == 0 {
  477. br.Ret = 200
  478. br.Success = true
  479. br.Msg = "获取成功"
  480. br.Data = data
  481. } else {
  482. data = make(Data, 1)
  483. fmt.Println(len(frequencyList))
  484. if len(frequencyList) > 21 {
  485. for i, item := range frequencyList {
  486. if item.DealCode == "" {
  487. item.DealValue = ""
  488. item.DealChange = ""
  489. }
  490. if item.BuyCode == "" {
  491. item.BuyValue = ""
  492. item.BuyChange = ""
  493. }
  494. if item.SoldCode == "" {
  495. item.SoldValue = ""
  496. item.SoldChange = ""
  497. }
  498. data[0].Title = classifyName
  499. if data[0].ItemList == nil {
  500. list := make([]ShanghaiList, 200)
  501. data[0].ItemList = list
  502. }
  503. if data[0].ItemList[k].Code == item.ClassifyType {
  504. data[0].ItemList[k].Item = append(data[0].ItemList[k].Item, item)
  505. continue
  506. }
  507. if i > 0 {
  508. k++
  509. }
  510. data[0].ItemList[k].Code = item.ClassifyType
  511. data[0].ItemList[k].Item = append(data[0].ItemList[k].Item, item)
  512. }
  513. data[0].ItemList = data[0].ItemList[:k]
  514. br.Ret = 200
  515. br.Success = true
  516. br.Msg = "获取成功"
  517. br.Data = data
  518. } else {
  519. for _, item := range frequencyList {
  520. if item.DealCode == "" {
  521. item.DealValue = ""
  522. item.DealChange = ""
  523. }
  524. if item.BuyCode == "" {
  525. item.BuyValue = ""
  526. item.BuyChange = ""
  527. }
  528. if item.SoldCode == "" {
  529. item.SoldValue = ""
  530. item.SoldChange = ""
  531. }
  532. data[0].Title = item.ClassifyName
  533. if data[0].ItemList == nil {
  534. list := make([]ShanghaiList, 1)
  535. data[0].ItemList = list
  536. }
  537. if data[0].ItemList[0].Code == item.ClassifyType {
  538. data[0].ItemList[0].Item = append(data[0].ItemList[0].Item, item)
  539. continue
  540. }
  541. //if i != 0 {
  542. // k++
  543. // fmt.Println(k)
  544. //}
  545. data[0].ItemList[0].Code = item.ClassifyType
  546. data[0].ItemList[0].Item = append(data[0].ItemList[0].Item, item)
  547. }
  548. //data[0].ItemList = data[0].ItemList[:k]
  549. br.Ret = 200
  550. br.Success = true
  551. br.Msg = "获取成功"
  552. br.Data = data
  553. }
  554. }
  555. }
  556. // DalianDataList
  557. // @title 获取大连交易所列表
  558. // @Description 获取大连交易所列表接口
  559. // @Param Date query string true "查询日期"
  560. // @Param ClassifyName query string false "分类名称"
  561. // @Param ClassifyType query string false "分类合约"
  562. // @Success 200 {object} models.
  563. // @router /data/dalian [get]
  564. func (this *TradeCommonController) DalianDataList() {
  565. br := new(models.BaseResponse).Init()
  566. defer func() {
  567. this.Data["json"] = br
  568. this.ServeJSON()
  569. }()
  570. date := this.GetString("Date")
  571. classifyName := this.GetString("ClassifyName")
  572. classifyType := this.GetString("ClassifyType")
  573. frequencyList, err := data_manage.GetBaseFromTradeIndexByParam("dalian", date, classifyName, classifyType)
  574. if err != nil {
  575. br.Msg = "获取持仓排名失败"
  576. br.ErrMsg = "获取持仓排名失败,Err:" + err.Error()
  577. return
  578. }
  579. var data Data
  580. var k int
  581. if len(frequencyList) == 0 {
  582. br.Ret = 200
  583. br.Success = true
  584. br.Msg = "获取成功"
  585. br.Data = data
  586. } else {
  587. data = make(Data, 1)
  588. fmt.Println("len:", len(frequencyList))
  589. if len(frequencyList) > 21 {
  590. for i, item := range frequencyList {
  591. if item.DealCode == "" {
  592. item.DealValue = ""
  593. item.DealChange = ""
  594. }
  595. if item.BuyCode == "" {
  596. item.BuyValue = ""
  597. item.BuyChange = ""
  598. }
  599. if item.SoldCode == "" {
  600. item.SoldValue = ""
  601. item.SoldChange = ""
  602. }
  603. data[0].Title = classifyName
  604. if data[0].ItemList == nil {
  605. list := make([]ShanghaiList, 200)
  606. data[0].ItemList = list
  607. }
  608. if data[0].ItemList[k].Code == item.ClassifyType {
  609. data[0].ItemList[k].Item = append(data[0].ItemList[k].Item, item)
  610. continue
  611. }
  612. if i > 0 {
  613. k++
  614. }
  615. data[0].ItemList[k].Code = item.ClassifyType
  616. data[0].ItemList[k].Item = append(data[0].ItemList[k].Item, item)
  617. }
  618. data[0].ItemList = data[0].ItemList[:k]
  619. br.Ret = 200
  620. br.Success = true
  621. br.Msg = "获取成功"
  622. br.Data = data
  623. } else {
  624. for _, item := range frequencyList {
  625. if item.DealCode == "" {
  626. item.DealValue = ""
  627. item.DealChange = ""
  628. }
  629. if item.BuyCode == "" {
  630. item.BuyValue = ""
  631. item.BuyChange = ""
  632. }
  633. if item.SoldCode == "" {
  634. item.SoldValue = ""
  635. item.SoldChange = ""
  636. }
  637. data[0].Title = item.ClassifyName
  638. if data[0].ItemList == nil {
  639. list := make([]ShanghaiList, 1)
  640. data[0].ItemList = list
  641. }
  642. if data[0].ItemList[0].Code == item.ClassifyType {
  643. data[0].ItemList[0].Item = append(data[0].ItemList[0].Item, item)
  644. continue
  645. }
  646. //if i != 0 {
  647. // k++
  648. // fmt.Println(k)
  649. //}
  650. data[0].ItemList[0].Code = item.ClassifyType
  651. data[0].ItemList[0].Item = append(data[0].ItemList[0].Item, item)
  652. }
  653. //data[0].ItemList = data[0].ItemList[:k]
  654. br.Ret = 200
  655. br.Success = true
  656. br.Msg = "获取成功"
  657. br.Data = data
  658. }
  659. }
  660. }
  661. // EicLatestDate
  662. // @title 获取欧洲天然气最新日期
  663. // @Description 获取欧洲天然气最新日期接口
  664. // @Success 200 {object} models.
  665. // @router /data/eicLatestDate [get]
  666. func (this *TradeCommonController) EicLatestDate() {
  667. br := new(models.BaseResponse).Init()
  668. defer func() {
  669. this.Data["json"] = br
  670. this.ServeJSON()
  671. }()
  672. latestData, err := data_manage.GetEicDate()
  673. if err != nil {
  674. br.Msg = "获取日期失败"
  675. br.ErrMsg = "获取日期失败,Err:" + err.Error()
  676. return
  677. }
  678. br.Ret = 200
  679. br.Success = true
  680. br.Msg = "获取成功"
  681. br.Data = latestData[0].GasDayStartedOn
  682. }
  683. // EicContinentList 欧洲天然气洲际及国家级列表
  684. // @title 获取欧洲天然气列表
  685. // @Description 获取欧洲天然气列表接口
  686. // @Param Date query string true "查询日期"
  687. // @Success 200 {object} models.
  688. // @router /data/eicContinent [get]
  689. func (this *TradeCommonController) EicContinentList() {
  690. br := new(models.BaseResponse).Init()
  691. defer func() {
  692. this.Data["json"] = br
  693. this.ServeJSON()
  694. }()
  695. date := this.GetString("Date")
  696. continentList, err := data_manage.GetContinentEicDate(date)
  697. if err != nil {
  698. br.Msg = "获取持仓排名失败"
  699. br.ErrMsg = "获取持仓排名失败,Err:" + err.Error()
  700. return
  701. }
  702. countryList, err := data_manage.GetCountryEicDate(date)
  703. if err != nil {
  704. br.Msg = "获取持仓排名失败"
  705. br.ErrMsg = "获取持仓排名失败,Err:" + err.Error()
  706. return
  707. }
  708. if len(countryList) == 0 || len(continentList) < 1 {
  709. br.Ret = 200
  710. br.Success = true
  711. br.Msg = "获取成功"
  712. br.Data = []EicData{}
  713. } else {
  714. countryLen := len(countryList)
  715. var euData = EicData{
  716. Country: "eu",
  717. Type: "continent",
  718. EicCode: "eu",
  719. ShortName: "eu",
  720. Name: "eu",
  721. Status: "N",
  722. GasDayStartedOn: "",
  723. GasInStorage: 0,
  724. GasInStorageCode: "euGS",
  725. Full: 0,
  726. FullCode: "euF",
  727. Trend: 0,
  728. TrendCode: "euT",
  729. Injection: 0,
  730. InjectionCode: "euIn",
  731. Withdrawal: 0,
  732. WithdrawalCode: "euOut",
  733. WorkingGasVolume: 0,
  734. WorkingGasVolumeCode: "euWGV",
  735. InjectionCapacity: 0,
  736. InjectionCapacityCode: "euIC",
  737. WithdrawalCapacity: 0,
  738. WithdrawalCapacityCode: "euWC",
  739. Info: "",
  740. Children: countryList[:countryLen-2],
  741. }
  742. var neData = EicData{
  743. Country: "ne",
  744. Type: "continent",
  745. EicCode: "ne",
  746. ShortName: "ne",
  747. Name: "ne",
  748. Status: "N",
  749. GasDayStartedOn: "",
  750. GasInStorage: 0,
  751. GasInStorageCode: "neGS",
  752. Full: 0,
  753. FullCode: "neF",
  754. Trend: 0,
  755. TrendCode: "neT",
  756. Injection: 0,
  757. InjectionCode: "neIn",
  758. Withdrawal: 0,
  759. WithdrawalCode: "neOut",
  760. WorkingGasVolume: 0,
  761. WorkingGasVolumeCode: "neWGV",
  762. InjectionCapacity: 0,
  763. InjectionCapacityCode: "neIC",
  764. WithdrawalCapacity: 0,
  765. WithdrawalCapacityCode: "neWC",
  766. Info: "",
  767. Children: countryList[countryLen-2:],
  768. }
  769. //如果洲际数据正常
  770. if continentList[0].Country == "eu" {
  771. gasInStorage, _ := strconv.ParseFloat(continentList[0].GasInStorage, 64)
  772. full, _ := strconv.ParseFloat(continentList[0].Full, 64)
  773. trend, _ := strconv.ParseFloat(continentList[0].Trend, 64)
  774. injection, _ := strconv.ParseFloat(continentList[0].Injection, 64)
  775. withdrawal, _ := strconv.ParseFloat(continentList[0].Withdrawal, 64)
  776. workingGasVolume, _ := strconv.ParseFloat(continentList[0].WorkingGasVolume, 64)
  777. injectionCapacity, _ := strconv.ParseFloat(continentList[0].InjectionCapacity, 64)
  778. withdrawalCapacity, _ := strconv.ParseFloat(continentList[0].WithdrawalCapacity, 64)
  779. euData = EicData{
  780. continentList[0].Country,
  781. continentList[0].Type,
  782. continentList[0].EicCode,
  783. continentList[0].ShortName,
  784. continentList[0].Name,
  785. continentList[0].Status,
  786. continentList[0].GasDayStartedOn,
  787. gasInStorage,
  788. continentList[0].GasInStorageCode,
  789. full,
  790. continentList[0].FullCode,
  791. trend,
  792. continentList[0].TrendCode,
  793. injection,
  794. continentList[0].InjectionCode,
  795. withdrawal,
  796. continentList[0].WithdrawalCode,
  797. workingGasVolume,
  798. continentList[0].WorkingGasVolumeCode,
  799. injectionCapacity,
  800. continentList[0].InjectionCapacityCode,
  801. withdrawalCapacity,
  802. continentList[0].WithdrawalCapacityCode,
  803. continentList[0].Info,
  804. countryList[:countryLen-2],
  805. }
  806. if len(continentList) > 1 {
  807. gasInStorage1, _ := strconv.ParseFloat(continentList[1].GasInStorage, 64)
  808. full1, _ := strconv.ParseFloat(continentList[1].Full, 64)
  809. trend1, _ := strconv.ParseFloat(continentList[1].Trend, 64)
  810. injection1, _ := strconv.ParseFloat(continentList[1].Injection, 64)
  811. withdrawal1, _ := strconv.ParseFloat(continentList[1].Withdrawal, 64)
  812. workingGasVolume1, _ := strconv.ParseFloat(continentList[1].WorkingGasVolume, 64)
  813. injectionCapacity1, _ := strconv.ParseFloat(continentList[1].InjectionCapacity, 64)
  814. withdrawalCapacity1, _ := strconv.ParseFloat(continentList[1].WithdrawalCapacity, 64)
  815. neData = EicData{
  816. continentList[1].Country,
  817. continentList[1].Type,
  818. continentList[1].EicCode,
  819. continentList[1].ShortName,
  820. continentList[1].Name,
  821. continentList[1].Status,
  822. continentList[1].GasDayStartedOn,
  823. gasInStorage1,
  824. continentList[1].GasInStorageCode,
  825. full1,
  826. continentList[1].FullCode,
  827. trend1,
  828. continentList[1].TrendCode,
  829. injection1,
  830. continentList[1].InjectionCode,
  831. withdrawal1,
  832. continentList[1].WithdrawalCode,
  833. workingGasVolume1,
  834. continentList[1].WorkingGasVolumeCode,
  835. injectionCapacity1,
  836. continentList[1].InjectionCapacityCode,
  837. withdrawalCapacity1,
  838. continentList[1].WithdrawalCapacityCode,
  839. continentList[1].Info,
  840. countryList[countryLen-2:],
  841. }
  842. }
  843. } else {
  844. //数据不正常,只有一个洲际数据时
  845. if continentList[0].Country == "eu" {
  846. gasInStorage, _ := strconv.ParseFloat(continentList[0].GasInStorage, 64)
  847. full, _ := strconv.ParseFloat(continentList[0].Full, 64)
  848. trend, _ := strconv.ParseFloat(continentList[0].Trend, 64)
  849. injection, _ := strconv.ParseFloat(continentList[0].Injection, 64)
  850. withdrawal, _ := strconv.ParseFloat(continentList[0].Withdrawal, 64)
  851. workingGasVolume, _ := strconv.ParseFloat(continentList[0].WorkingGasVolume, 64)
  852. injectionCapacity, _ := strconv.ParseFloat(continentList[0].InjectionCapacity, 64)
  853. withdrawalCapacity, _ := strconv.ParseFloat(continentList[0].WithdrawalCapacity, 64)
  854. euData = EicData{
  855. continentList[0].Country,
  856. continentList[0].Type,
  857. continentList[0].EicCode,
  858. continentList[0].ShortName,
  859. continentList[0].Name,
  860. continentList[0].Status,
  861. continentList[0].GasDayStartedOn,
  862. gasInStorage,
  863. continentList[0].GasInStorageCode,
  864. full,
  865. continentList[0].FullCode,
  866. trend,
  867. continentList[0].TrendCode,
  868. injection,
  869. continentList[0].InjectionCode,
  870. withdrawal,
  871. continentList[0].WithdrawalCode,
  872. workingGasVolume,
  873. continentList[0].WorkingGasVolumeCode,
  874. injectionCapacity,
  875. continentList[0].InjectionCapacityCode,
  876. withdrawalCapacity,
  877. continentList[0].WithdrawalCapacityCode,
  878. continentList[0].Info,
  879. countryList[:countryLen-2],
  880. }
  881. } else {
  882. gasInStorage1, _ := strconv.ParseFloat(continentList[0].GasInStorage, 64)
  883. full1, _ := strconv.ParseFloat(continentList[0].Full, 64)
  884. trend1, _ := strconv.ParseFloat(continentList[0].Trend, 64)
  885. injection1, _ := strconv.ParseFloat(continentList[0].Injection, 64)
  886. withdrawal1, _ := strconv.ParseFloat(continentList[0].Withdrawal, 64)
  887. workingGasVolume1, _ := strconv.ParseFloat(continentList[0].WorkingGasVolume, 64)
  888. injectionCapacity1, _ := strconv.ParseFloat(continentList[0].InjectionCapacity, 64)
  889. withdrawalCapacity1, _ := strconv.ParseFloat(continentList[0].WithdrawalCapacity, 64)
  890. neData = EicData{
  891. continentList[0].Country,
  892. continentList[0].Type,
  893. continentList[0].EicCode,
  894. continentList[0].ShortName,
  895. continentList[0].Name,
  896. continentList[0].Status,
  897. continentList[0].GasDayStartedOn,
  898. gasInStorage1,
  899. continentList[0].GasInStorageCode,
  900. full1,
  901. continentList[0].FullCode,
  902. trend1,
  903. continentList[0].TrendCode,
  904. injection1,
  905. continentList[0].InjectionCode,
  906. withdrawal1,
  907. continentList[0].WithdrawalCode,
  908. workingGasVolume1,
  909. continentList[0].WorkingGasVolumeCode,
  910. injectionCapacity1,
  911. continentList[0].InjectionCapacityCode,
  912. withdrawalCapacity1,
  913. continentList[0].WithdrawalCapacityCode,
  914. continentList[0].Info,
  915. countryList[countryLen-2:],
  916. }
  917. }
  918. }
  919. var data []EicData
  920. data = append(data, euData)
  921. data = append(data, neData)
  922. br.Ret = 200
  923. br.Success = true
  924. br.Msg = "获取成功"
  925. br.Data = data
  926. }
  927. }
  928. // EicDataList 欧洲天然气细节列表
  929. // @title 获取欧洲天然气列表
  930. // @Description 获取欧洲天然气列表接口
  931. // @Param Date query string true "查询日期"
  932. // @Param Country query string true "国家"
  933. // @Success 200 {object} models.
  934. // @router /data/eicData [get]
  935. func (this *TradeCommonController) EicDataList() {
  936. br := new(models.BaseResponse).Init()
  937. defer func() {
  938. this.Data["json"] = br
  939. this.ServeJSON()
  940. }()
  941. date := this.GetString("Date")
  942. country := this.GetString("Country")
  943. ssoList, err := data_manage.GetSSOEicDate(date, country)
  944. if err != nil {
  945. br.Msg = "获取持仓排名失败"
  946. br.ErrMsg = "获取持仓排名失败,Err:" + err.Error()
  947. return
  948. }
  949. storageList, err := data_manage.GetStorageEicDate(date, country)
  950. if err != nil {
  951. br.Msg = "获取持仓排名失败"
  952. br.ErrMsg = "获取持仓排名失败,Err:" + err.Error()
  953. return
  954. }
  955. var data []EicData
  956. for _, sso := range ssoList {
  957. gasInStorage, _ := strconv.ParseFloat(sso.GasInStorage, 64)
  958. full, _ := strconv.ParseFloat(sso.Full, 64)
  959. trend, _ := strconv.ParseFloat(sso.Trend, 64)
  960. injection, _ := strconv.ParseFloat(sso.Injection, 64)
  961. withdrawal, _ := strconv.ParseFloat(sso.Withdrawal, 64)
  962. workingGasVolume, _ := strconv.ParseFloat(sso.WorkingGasVolume, 64)
  963. injectionCapacity, _ := strconv.ParseFloat(sso.InjectionCapacity, 64)
  964. withdrawalCapacity, _ := strconv.ParseFloat(sso.WithdrawalCapacity, 64)
  965. item := EicData{
  966. sso.Country,
  967. sso.Type,
  968. sso.EicCode,
  969. sso.ShortName,
  970. sso.Name,
  971. sso.Status,
  972. sso.GasDayStartedOn,
  973. gasInStorage,
  974. sso.GasInStorageCode,
  975. full,
  976. sso.FullCode,
  977. trend,
  978. sso.TrendCode,
  979. injection,
  980. sso.InjectionCode,
  981. withdrawal,
  982. sso.WithdrawalCode,
  983. workingGasVolume,
  984. sso.WorkingGasVolumeCode,
  985. injectionCapacity,
  986. sso.InjectionCapacityCode,
  987. withdrawalCapacity,
  988. sso.WithdrawalCapacityCode,
  989. sso.Info,
  990. []*data_manage.BaseFromTradeEicIndex{},
  991. }
  992. for _, st := range storageList {
  993. if item.ShortName == st.ShortName {
  994. item.Children = append(item.Children, st)
  995. }
  996. }
  997. data = append(data, item)
  998. }
  999. br.Ret = 200
  1000. br.Success = true
  1001. br.Msg = "获取成功"
  1002. br.Data = data
  1003. }
  1004. // EicHistoryData
  1005. // @title 获取欧洲天然气历史列表
  1006. // @Description 获取欧洲天然气历史列表接口
  1007. // @Param Code query string true "Code"
  1008. // @Param StartDate query string false "开始时间"
  1009. // @Param EndDate query string false "结束时间"
  1010. // @Success 200 {object} models.
  1011. // @router /data/eicHistoryData [get]
  1012. func (this *TradeCommonController) EicHistoryData() {
  1013. br := new(models.BaseResponse).Init()
  1014. defer func() {
  1015. this.Data["json"] = br
  1016. this.ServeJSON()
  1017. }()
  1018. code := this.GetString("Code")
  1019. startDate := this.GetString("StartDate")
  1020. endDate := this.GetString("EndDate")
  1021. var eicList []*data_manage.BaseFromTradeEicIndex
  1022. var err error
  1023. if endDate != "" {
  1024. eicList, err = data_manage.GetEicHistoryDateByDate(code, startDate, endDate)
  1025. if err != nil {
  1026. br.Msg = "获取持仓排名失败"
  1027. br.ErrMsg = "获取持仓排名失败,Err:" + err.Error()
  1028. return
  1029. }
  1030. } else {
  1031. eicList, err = data_manage.GetEicHistoryDate(code)
  1032. if err != nil {
  1033. br.Msg = "获取持仓排名失败"
  1034. br.ErrMsg = "获取持仓排名失败,Err:" + err.Error()
  1035. return
  1036. }
  1037. }
  1038. var data []EicData
  1039. for _, eic := range eicList {
  1040. gasInStorage, _ := strconv.ParseFloat(eic.GasInStorage, 64)
  1041. full, _ := strconv.ParseFloat(eic.Full, 64)
  1042. trend, _ := strconv.ParseFloat(eic.Trend, 64)
  1043. injection, _ := strconv.ParseFloat(eic.Injection, 64)
  1044. withdrawal, _ := strconv.ParseFloat(eic.Withdrawal, 64)
  1045. workingGasVolume, _ := strconv.ParseFloat(eic.WorkingGasVolume, 64)
  1046. injectionCapacity, _ := strconv.ParseFloat(eic.InjectionCapacity, 64)
  1047. withdrawalCapacity, _ := strconv.ParseFloat(eic.WithdrawalCapacity, 64)
  1048. item := EicData{
  1049. eic.Country,
  1050. eic.Type,
  1051. eic.EicCode,
  1052. eic.ShortName,
  1053. eic.Name,
  1054. eic.Status,
  1055. eic.GasDayStartedOn,
  1056. gasInStorage,
  1057. eic.GasInStorageCode,
  1058. full,
  1059. eic.FullCode,
  1060. trend,
  1061. eic.TrendCode,
  1062. injection,
  1063. eic.InjectionCode,
  1064. withdrawal,
  1065. eic.WithdrawalCode,
  1066. workingGasVolume,
  1067. eic.WorkingGasVolumeCode,
  1068. injectionCapacity,
  1069. eic.InjectionCapacityCode,
  1070. withdrawalCapacity,
  1071. eic.WithdrawalCapacityCode,
  1072. eic.Info,
  1073. []*data_manage.BaseFromTradeEicIndex{},
  1074. }
  1075. data = append(data, item)
  1076. }
  1077. br.Ret = 200
  1078. br.Success = true
  1079. br.Msg = "获取成功"
  1080. br.Data = data
  1081. }
  1082. //// EicHistoryDataByDate
  1083. //// @title 根据时间获取欧洲天然气历史列表
  1084. //// @Description 根据时间获取欧洲天然气历史列表
  1085. //// @Param Code query string true "Code"
  1086. //// @Param Date1 query string true "时间1"
  1087. //// @Param Date2 query string true "时间2"
  1088. //// @Success 200 {object} models.
  1089. //// @router /data/eicHistoryDataByDate [get]
  1090. //func (this *TradeCommonController) EicHistoryDataByDate() {
  1091. // br := new(models.BaseResponse).Init()
  1092. // defer func() {
  1093. // this.Data["json"] = br
  1094. // this.ServeJSON()
  1095. // }()
  1096. // code := this.GetString("Code")
  1097. // date1 := this.GetString("Date1")
  1098. // date2 := this.GetString("Date2")
  1099. // eicList, err := data_manage.GetEicHistoryDateByDate(code,date1,date2)
  1100. // if err != nil {
  1101. // br.Msg = "获取持仓排名失败"
  1102. // br.ErrMsg = "获取持仓排名失败,Err:" + err.Error()
  1103. // return
  1104. // }
  1105. // var data []EicData
  1106. // for _, eic := range eicList {
  1107. // gasInStorage, _ := strconv.ParseFloat(eic.GasInStorage, 64)
  1108. // full, _ := strconv.ParseFloat(eic.Full, 64)
  1109. // trend, _ := strconv.ParseFloat(eic.Trend, 64)
  1110. // injection, _ := strconv.ParseFloat(eic.Injection, 64)
  1111. // withdrawal, _ := strconv.ParseFloat(eic.Withdrawal, 64)
  1112. // workingGasVolume, _ := strconv.ParseFloat(eic.WorkingGasVolume, 64)
  1113. // injectionCapacity, _ := strconv.ParseFloat(eic.InjectionCapacity, 64)
  1114. // withdrawalCapacity, _ := strconv.ParseFloat(eic.WithdrawalCapacity, 64)
  1115. // item := EicData{
  1116. // eic.Country,
  1117. // eic.Type,
  1118. // eic.EicCode,
  1119. // eic.ShortName,
  1120. // eic.Name,
  1121. // eic.Status,
  1122. // eic.GasDayStartedOn,
  1123. // gasInStorage,
  1124. // eic.GasInStorageCode,
  1125. // full,
  1126. // eic.FullCode,
  1127. // trend,
  1128. // eic.TrendCode,
  1129. // injection,
  1130. // eic.InjectionCode,
  1131. // withdrawal,
  1132. // eic.WithdrawalCode,
  1133. // workingGasVolume,
  1134. // eic.WorkingGasVolumeCode,
  1135. // injectionCapacity,
  1136. // eic.InjectionCapacityCode,
  1137. // withdrawalCapacity,
  1138. // eic.WithdrawalCapacityCode,
  1139. // eic.Info,
  1140. // []*data_manage.BaseFromTradeEicIndex{},
  1141. // }
  1142. // data = append(data, item)
  1143. // }
  1144. //
  1145. // br.Ret = 200
  1146. // br.Success = true
  1147. // br.Msg = "获取成功"
  1148. // br.Data = data
  1149. //}
  1150. // CoalMineClassify
  1151. // @title 获取中国煤炭市场网分类列表
  1152. // @Description 获取中国煤炭市场网分类列表
  1153. // @Success 200 {object} models.
  1154. // @router /data/coalMineData/classify [get]
  1155. func (this *TradeCommonController) CoalMineClassify() {
  1156. br := new(models.BaseResponse).Init()
  1157. defer func() {
  1158. this.Data["json"] = br
  1159. this.ServeJSON()
  1160. }()
  1161. var coalList []data_manage.BaseFromCoalmineClassifyItem
  1162. var suffix string
  1163. var coal data_manage.BaseFromCoalmineClassifyItem
  1164. groups := []*string{}
  1165. var childs []data_manage.CoalChild
  1166. var child data_manage.CoalChild
  1167. list, err := data_manage.GetCoalmineClassifyList()
  1168. if err != nil {
  1169. br.Msg = "获取煤炭分类数据失败"
  1170. br.ErrMsg = "获取煤炭度分类数据失败,Err: " + err.Error()
  1171. return
  1172. }
  1173. for _, v := range list {
  1174. if v.Suffix == "jsm_index" {
  1175. suffix = "jsm_index"
  1176. groups, err = data_manage.GetProvinceFromCoalmineIndex(suffix)
  1177. if err != nil {
  1178. br.Msg = "获取煤炭分类数据失败"
  1179. br.ErrMsg = "获取煤炭度分类数据失败,Err: " + err.Error()
  1180. return
  1181. }
  1182. coal.ClassifyId = 1
  1183. coal.ClassifyName = "晋陕蒙三省煤矿产量周度数据"
  1184. jsmId := 100
  1185. for _, group := range groups {
  1186. jsmId++
  1187. child.ClassifyId = jsmId
  1188. child.ClassifyName = *group
  1189. childs = append(childs, child)
  1190. }
  1191. coal.Child = childs
  1192. coalList = append(coalList, coal)
  1193. }
  1194. if v.Suffix == "company_index" {
  1195. suffix = "company_index"
  1196. groups = []*string{}
  1197. childs = []data_manage.CoalChild{}
  1198. groups, err = data_manage.GetGroupNameFromCoalmineIndex(suffix)
  1199. if err != nil {
  1200. br.Msg = "获取煤炭分类数据失败"
  1201. br.ErrMsg = "获取煤炭度分类数据失败,Err: " + err.Error()
  1202. return
  1203. }
  1204. coal.ClassifyId = 2
  1205. coal.ClassifyName = "442家晋陕蒙煤矿周度产量"
  1206. companyId := 200
  1207. for _, group := range groups {
  1208. companyId++
  1209. child.ClassifyId = companyId
  1210. child.ClassifyName = *group
  1211. childs = append(childs, child)
  1212. }
  1213. coal.Child = childs
  1214. coalList = append(coalList, coal)
  1215. }
  1216. if v.Suffix == "firm_index" {
  1217. suffix = "firm_index"
  1218. groups = []*string{}
  1219. childs = []data_manage.CoalChild{}
  1220. groups, err = data_manage.GetGroupNameFromCoalmineIndex(suffix)
  1221. if err != nil {
  1222. br.Msg = "获取煤炭分类数据失败"
  1223. br.ErrMsg = "获取煤炭度分类数据失败,Err: " + err.Error()
  1224. return
  1225. }
  1226. coal.ClassifyId = 3
  1227. coal.ClassifyName = "全国分企业煤炭产量旬度数据"
  1228. firmId := 300
  1229. for _, group := range groups {
  1230. firmId++
  1231. child.ClassifyId = firmId
  1232. child.ClassifyName = *group
  1233. childs = append(childs, child)
  1234. }
  1235. coal.Child = childs
  1236. coalList = append(coalList, coal)
  1237. }
  1238. if v.Suffix == "coastal_index" {
  1239. suffix = "coastal_index"
  1240. groups = []*string{}
  1241. childs = []data_manage.CoalChild{}
  1242. groups, err = data_manage.GetGroupNameFromCoalmineIndex(suffix)
  1243. if err != nil {
  1244. br.Msg = "获取煤炭分类数据失败"
  1245. br.ErrMsg = "获取煤炭度分类数据失败,Err: " + err.Error()
  1246. return
  1247. }
  1248. coal.ClassifyId = 4
  1249. coal.ClassifyName = "沿海八省动力煤终端用户供耗存"
  1250. coastalId := 400
  1251. for _, group := range groups {
  1252. coastalId++
  1253. child.ClassifyId = coastalId
  1254. child.ClassifyName = *group
  1255. childs = append(childs, child)
  1256. }
  1257. coal.Child = childs
  1258. coalList = append(coalList, coal)
  1259. }
  1260. if v.Suffix == "inland_index" {
  1261. suffix = "inland_index"
  1262. groups = []*string{}
  1263. childs = []data_manage.CoalChild{}
  1264. groups, err = data_manage.GetGroupNameFromCoalmineIndex(suffix)
  1265. if err != nil {
  1266. br.Msg = "获取煤炭分类数据失败"
  1267. br.ErrMsg = "获取煤炭度分类数据失败,Err: " + err.Error()
  1268. return
  1269. }
  1270. coal.ClassifyId = 5
  1271. coal.ClassifyName = "内陆17省动力煤终端用户供耗存"
  1272. inlandId := 500
  1273. for _, group := range groups {
  1274. inlandId++
  1275. child.ClassifyId = inlandId
  1276. child.ClassifyName = *group
  1277. childs = append(childs, child)
  1278. }
  1279. coal.Child = childs
  1280. coalList = append(coalList, coal)
  1281. }
  1282. }
  1283. br.Ret = 200
  1284. br.Success = true
  1285. br.Msg = "获取成功"
  1286. br.Data = coalList
  1287. }
  1288. // CoalMineFrequency
  1289. // @title 获取中国煤炭市场网频度
  1290. // @Description 获取中国煤炭市场网频度
  1291. // @Param ClassifyId query int true "数据id"
  1292. // @Success 200 {object} models.
  1293. // @router /data/coalMineData/frequency [get]
  1294. func (this *TradeCommonController) CoalMineFrequency() {
  1295. br := new(models.BaseResponse).Init()
  1296. defer func() {
  1297. this.Data["json"] = br
  1298. this.ServeJSON()
  1299. }()
  1300. classifyId, _ := this.GetInt("ClassifyId")
  1301. var suffix string
  1302. if classifyId == 1 {
  1303. suffix = "jsm_index"
  1304. } else if classifyId == 2 {
  1305. suffix = "company_index"
  1306. } else if classifyId == 3 {
  1307. suffix = "firm_index"
  1308. } else if classifyId == 4 {
  1309. suffix = "coastal_index"
  1310. } else if classifyId == 5 {
  1311. suffix = "inland_index"
  1312. }
  1313. frequency, err := data_manage.GetFrequencyFromCoal(suffix)
  1314. if err != nil {
  1315. br.Msg = "获取煤炭频度数据失败"
  1316. br.ErrMsg = "获取煤炭频度数据失败,Err:" + err.Error()
  1317. return
  1318. }
  1319. var resp data_manage.FrequencyResp
  1320. switch *frequency {
  1321. case "日度":
  1322. resp.Frequency = 1
  1323. case "周度":
  1324. resp.Frequency = 2
  1325. case "旬度":
  1326. resp.Frequency = 3
  1327. case "月度":
  1328. resp.Frequency = 4
  1329. case "季度":
  1330. resp.Frequency = 5
  1331. case "年度":
  1332. resp.Frequency = 6
  1333. default:
  1334. resp.Frequency = 99
  1335. }
  1336. var list []data_manage.FrequencyResp
  1337. list = append(list, resp)
  1338. br.Ret = 200
  1339. br.Success = true
  1340. br.Msg = "获取成功"
  1341. br.Data = list
  1342. }
  1343. // CoalMineData
  1344. // @title 获取中国煤炭市场网详细数据列表
  1345. // @Description 获取中国煤炭市场网详细数据接口
  1346. // @Param ClassifyId query int true "数据id"
  1347. // @Param GroupName query string true "分组名"
  1348. // @Param Frequency query string true "频度"
  1349. // @Param PageSize query int true "每页数据条数"
  1350. // @Param CurrentIndex query int true "当前页页码,从1开始"
  1351. // @Success 200 {object} []data_manage.CoalmineDataResp
  1352. // @router /data/coalMineData/data [get]
  1353. func (this *TradeCommonController) CoalMineData() {
  1354. br := new(models.BaseResponse).Init()
  1355. defer func() {
  1356. this.Data["json"] = br
  1357. this.ServeJSON()
  1358. }()
  1359. classifyId, _ := this.GetInt("ClassifyId")
  1360. frequency := this.GetString("Frequency")
  1361. groupName := this.GetString("GroupName")
  1362. pageSize, _ := this.GetInt("PageSize")
  1363. currentIndex, _ := this.GetInt("CurrentIndex")
  1364. var startSize int
  1365. if pageSize <= 0 {
  1366. pageSize = utils.PageSize20
  1367. }
  1368. if currentIndex <= 0 {
  1369. currentIndex = 1
  1370. }
  1371. startSize = utils.StartIndex(currentIndex, pageSize)
  1372. //var groups []*string
  1373. //var err error
  1374. //var suffix string
  1375. //if classifyId == 1 {
  1376. // suffix = "jsm_index"
  1377. //} else if classifyId == 2 {
  1378. // suffix = "company_index"
  1379. //} else if classifyId == 3 {
  1380. // suffix = "firm_index"
  1381. //} else if classifyId == 4 {
  1382. // suffix = "coastal_index"
  1383. //} else if classifyId == 5 {
  1384. // suffix = "inland_index"
  1385. //}
  1386. switch classifyId {
  1387. case 1:
  1388. classifies, err := data_manage.GetClassifyCoalmineIndexByGroupName(groupName)
  1389. if err != nil {
  1390. br.Msg = "获取煤炭数据失败"
  1391. br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
  1392. return
  1393. }
  1394. var lists []data_manage.CoalmineDataPageResp
  1395. for _, classify := range classifies {
  1396. items, err := data_manage.GetPageFromCoalmineIndexByFrequency(frequency, *classify, startSize, pageSize)
  1397. if err != nil {
  1398. br.Msg = "获取煤炭数据失败"
  1399. br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
  1400. return
  1401. }
  1402. total, err := data_manage.GetCountFromJsm(*classify)
  1403. if err != nil {
  1404. br.Msg = "获取煤炭数据失败"
  1405. br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
  1406. return
  1407. }
  1408. page := paging.GetPaging(currentIndex, pageSize, total)
  1409. var resp data_manage.CoalmineDataPageResp
  1410. for i, item := range items {
  1411. if i == 0 {
  1412. resp.ModifyTime = item.CreateTime
  1413. }
  1414. resp.Paging = page
  1415. resp.IndexName = item.IndexName
  1416. resp.IndexCode = item.IndexCode
  1417. resp.Unit = item.Unit
  1418. resp.Frequency = item.Frequency
  1419. //组装dataList
  1420. var dataItem data_manage.DataList
  1421. dataItem.DataTime = item.DataTime
  1422. dataItem.Value = item.DealValue
  1423. resp.DataList = append(resp.DataList, dataItem)
  1424. }
  1425. lists = append(lists, resp)
  1426. }
  1427. br.Ret = 200
  1428. br.Success = true
  1429. br.Msg = "获取成功"
  1430. br.Data = lists
  1431. case 2:
  1432. classifies, err := data_manage.GetClassifyCompanyByGroupName(groupName)
  1433. if err != nil {
  1434. br.Msg = "获取煤炭数据失败"
  1435. br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
  1436. return
  1437. }
  1438. var lists []data_manage.CoalmineDataPageResp
  1439. for _, classify := range classifies {
  1440. items, err := data_manage.GetPageFromCoalmineCompanyIndexByFrequency(frequency, *classify, startSize, pageSize)
  1441. if err != nil {
  1442. br.Msg = "获取煤炭数据失败"
  1443. br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
  1444. return
  1445. }
  1446. total, err := data_manage.GetCountFromCompany(*classify)
  1447. if err != nil {
  1448. br.Msg = "获取煤炭数据失败"
  1449. br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
  1450. return
  1451. }
  1452. page := paging.GetPaging(currentIndex, pageSize, total)
  1453. var resp data_manage.CoalmineDataPageResp
  1454. for i, item := range items {
  1455. if i == 0 {
  1456. resp.ModifyTime = item.CreateTime
  1457. }
  1458. resp.Paging = page
  1459. resp.IndexName = item.IndexName
  1460. resp.IndexCode = item.IndexCode
  1461. resp.Unit = item.Unit
  1462. resp.Frequency = item.Frequency
  1463. //组装dataList
  1464. var dataItem data_manage.DataList
  1465. dataItem.DataTime = item.DataTime
  1466. dataItem.Value = item.DealValue
  1467. resp.DataList = append(resp.DataList, dataItem)
  1468. }
  1469. lists = append(lists, resp)
  1470. }
  1471. br.Ret = 200
  1472. br.Success = true
  1473. br.Msg = "获取成功"
  1474. br.Data = lists
  1475. case 3:
  1476. classifies, err := data_manage.GetClassifyFirmByGroupName(groupName)
  1477. if err != nil {
  1478. br.Msg = "获取煤炭数据失败"
  1479. br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
  1480. return
  1481. }
  1482. var lists []data_manage.CoalmineDataPageResp
  1483. for _, classify := range classifies {
  1484. items, err := data_manage.GetPageFromCoalmineFirmIndexByFrequency(frequency, *classify, startSize, pageSize)
  1485. if err != nil {
  1486. br.Msg = "获取煤炭数据失败"
  1487. br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
  1488. return
  1489. }
  1490. total, err := data_manage.GetCountFromFirm(*classify)
  1491. if err != nil {
  1492. br.Msg = "获取煤炭数据失败"
  1493. br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
  1494. return
  1495. }
  1496. page := paging.GetPaging(currentIndex, pageSize, total)
  1497. var resp data_manage.CoalmineDataPageResp
  1498. for i, item := range items {
  1499. if i == 0 {
  1500. resp.ModifyTime = item.CreateTime
  1501. }
  1502. resp.Paging = page
  1503. resp.IndexName = item.IndexName
  1504. resp.IndexCode = item.IndexCode
  1505. resp.Unit = item.Unit
  1506. resp.Frequency = item.Frequency
  1507. //组装dataList
  1508. var dataItem data_manage.DataList
  1509. dataItem.DataTime = item.DataTime
  1510. dataItem.Value = item.DealValue
  1511. resp.DataList = append(resp.DataList, dataItem)
  1512. }
  1513. lists = append(lists, resp)
  1514. }
  1515. br.Ret = 200
  1516. br.Success = true
  1517. br.Msg = "获取成功"
  1518. br.Data = lists
  1519. case 4:
  1520. classifies, err := data_manage.GetClassifyCoastalByGroupName(groupName)
  1521. if err != nil {
  1522. br.Msg = "获取煤炭数据失败"
  1523. br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
  1524. return
  1525. }
  1526. var lists []data_manage.CoalmineDataPageResp
  1527. for _, classify := range classifies {
  1528. items, err := data_manage.GetPageFromCoalmineCoastalIndexByFrequency(frequency, *classify, startSize, pageSize)
  1529. if err != nil {
  1530. br.Msg = "获取煤炭数据失败"
  1531. br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
  1532. return
  1533. }
  1534. total, err := data_manage.GetCountFromCoastal(*classify)
  1535. if err != nil {
  1536. br.Msg = "获取煤炭数据失败"
  1537. br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
  1538. return
  1539. }
  1540. page := paging.GetPaging(currentIndex, pageSize, total)
  1541. var resp data_manage.CoalmineDataPageResp
  1542. for i, item := range items {
  1543. if i == 0 {
  1544. resp.ModifyTime = item.CreateTime
  1545. }
  1546. resp.Paging = page
  1547. resp.IndexName = item.IndexName
  1548. resp.IndexCode = item.IndexCode
  1549. resp.Unit = item.Unit
  1550. resp.Frequency = item.Frequency
  1551. //组装dataList
  1552. var dataItem data_manage.DataList
  1553. dataItem.DataTime = item.DataTime
  1554. dataItem.Value = item.DealValue
  1555. resp.DataList = append(resp.DataList, dataItem)
  1556. }
  1557. lists = append(lists, resp)
  1558. }
  1559. br.Ret = 200
  1560. br.Success = true
  1561. br.Msg = "获取成功"
  1562. br.Data = lists
  1563. case 5:
  1564. classifies, err := data_manage.GetClassifyInlandByGroupName(groupName)
  1565. if err != nil {
  1566. br.Msg = "获取煤炭数据失败"
  1567. br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
  1568. return
  1569. }
  1570. var lists []data_manage.CoalmineDataPageResp
  1571. for _, classify := range classifies {
  1572. items, err := data_manage.GetPageFromCoalmineInlandIndexByFrequency(frequency, *classify, startSize, pageSize)
  1573. if err != nil {
  1574. br.Msg = "获取煤炭数据失败"
  1575. br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
  1576. return
  1577. }
  1578. total, err := data_manage.GetCountFromInland(*classify)
  1579. if err != nil {
  1580. br.Msg = "获取煤炭数据失败"
  1581. br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
  1582. return
  1583. }
  1584. page := paging.GetPaging(currentIndex, pageSize, total)
  1585. var resp data_manage.CoalmineDataPageResp
  1586. for i, item := range items {
  1587. if i == 0 {
  1588. resp.ModifyTime = item.CreateTime
  1589. }
  1590. resp.Paging = page
  1591. resp.IndexName = item.IndexName
  1592. resp.IndexCode = item.IndexCode
  1593. resp.Unit = item.Unit
  1594. resp.Frequency = item.Frequency
  1595. //组装dataList
  1596. var dataItem data_manage.DataList
  1597. dataItem.DataTime = item.DataTime
  1598. dataItem.Value = item.DealValue
  1599. resp.DataList = append(resp.DataList, dataItem)
  1600. }
  1601. lists = append(lists, resp)
  1602. }
  1603. br.Ret = 200
  1604. br.Success = true
  1605. br.Msg = "获取成功"
  1606. br.Data = lists
  1607. default:
  1608. br.Ret = 200
  1609. br.Success = true
  1610. br.Msg = "获取煤炭数据失败"
  1611. br.ErrMsg = "获取煤炭度数据失败,Err: classifyId 错误"
  1612. return
  1613. }
  1614. }
  1615. // CoalSingleData
  1616. // @Title 获取煤炭单条数据
  1617. // @Description 获取煤炭单条数据
  1618. // @Param IndexCode query string true "指标唯一编码"
  1619. // @Success 200 {object} []data_manage.CoalmineSingalDataResp
  1620. // @router /data/coalMineData/single_data [get]
  1621. func (this *TradeCommonController) CoalSingleData() {
  1622. br := new(models.BaseResponse).Init()
  1623. defer func() {
  1624. this.Data["json"] = br
  1625. this.ServeJSON()
  1626. }()
  1627. indexCode := this.GetString("IndexCode")
  1628. var classifyId int
  1629. var suffix string
  1630. if strings.Contains(indexCode, "jsm") {
  1631. classifyId = 1
  1632. suffix = "jsm_index"
  1633. } else if strings.Contains(indexCode, "company") {
  1634. classifyId = 2
  1635. suffix = "company_index"
  1636. } else if strings.Contains(indexCode, "firm") {
  1637. classifyId = 3
  1638. suffix = "firm_index"
  1639. } else if strings.Contains(indexCode, "coastal") {
  1640. classifyId = 4
  1641. suffix = "coastal_index"
  1642. } else if strings.Contains(indexCode, "inland") {
  1643. classifyId = 5
  1644. suffix = "inland_index"
  1645. }
  1646. switch classifyId {
  1647. case 1:
  1648. items, err := data_manage.GetBaseFromCoalmineIndexByCode(indexCode)
  1649. if err != nil {
  1650. br.Msg = "获取煤炭数据失败"
  1651. br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
  1652. return
  1653. }
  1654. groups, err := data_manage.GetProvinceFromCoalmineIndex(suffix)
  1655. if err != nil {
  1656. br.Msg = "获取煤炭分类数据失败"
  1657. br.ErrMsg = "获取煤炭度分类数据失败,Err: " + err.Error()
  1658. return
  1659. }
  1660. groupMap := make(map[string]int)
  1661. jsmId := 100
  1662. for _, group := range groups {
  1663. jsmId++
  1664. groupMap[*group] = jsmId
  1665. }
  1666. var lists []data_manage.CoalmineSingalDataResp
  1667. var resp data_manage.CoalmineSingalDataResp
  1668. classify := items[0].IndexName
  1669. for i, item := range items {
  1670. if item.IndexName != classify {
  1671. lists = append(lists, resp)
  1672. classify = item.IndexName
  1673. }
  1674. resp.IndexName = item.IndexName
  1675. resp.IndexCode = item.IndexCode
  1676. resp.GroupId = groupMap[item.Province]
  1677. resp.GroupName = item.Province
  1678. resp.Unit = item.Unit
  1679. resp.Frequency = item.Frequency
  1680. resp.ModifyTime = item.ModifyTime
  1681. resp.ClassifyId = classifyId
  1682. //组装dataList
  1683. var dataItem data_manage.DataList
  1684. dataItem.DataTime = item.DataTime
  1685. dataItem.Value = item.DealValue
  1686. resp.DataList = append(resp.DataList, dataItem)
  1687. if i == len(items)-1 {
  1688. lists = append(lists, resp)
  1689. }
  1690. }
  1691. br.Ret = 200
  1692. br.Success = true
  1693. br.Msg = "获取成功"
  1694. br.Data = lists
  1695. case 2:
  1696. items, err := data_manage.GetBaseFromCoalmineCompanyIndexByCode(indexCode)
  1697. if err != nil {
  1698. br.Msg = "获取煤炭数据失败"
  1699. br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
  1700. return
  1701. }
  1702. groups, err := data_manage.GetGroupNameFromCoalmineIndex(suffix)
  1703. if err != nil {
  1704. br.Msg = "获取煤炭分类数据失败"
  1705. br.ErrMsg = "获取煤炭度分类数据失败,Err: " + err.Error()
  1706. return
  1707. }
  1708. groupMap := make(map[string]int)
  1709. companyId := 200
  1710. for _, group := range groups {
  1711. companyId++
  1712. groupMap[*group] = companyId
  1713. }
  1714. var lists []data_manage.CoalmineSingalDataResp
  1715. var resp data_manage.CoalmineSingalDataResp
  1716. classify := items[0].IndexName
  1717. for i, item := range items {
  1718. if item.IndexName != classify {
  1719. lists = append(lists, resp)
  1720. classify = item.IndexName
  1721. }
  1722. resp.IndexName = item.IndexName
  1723. resp.IndexCode = item.IndexCode
  1724. resp.Unit = item.Unit
  1725. resp.GroupId = groupMap[item.GroupName]
  1726. resp.GroupName = item.GroupName
  1727. resp.Frequency = item.Frequency
  1728. resp.ModifyTime = item.ModifyTime
  1729. resp.ClassifyId = classifyId
  1730. //组装dataList
  1731. var dataItem data_manage.DataList
  1732. dataItem.DataTime = item.DataTime
  1733. dataItem.Value = item.DealValue
  1734. resp.DataList = append(resp.DataList, dataItem)
  1735. if i == len(items)-1 {
  1736. lists = append(lists, resp)
  1737. }
  1738. }
  1739. br.Ret = 200
  1740. br.Success = true
  1741. br.Msg = "获取成功"
  1742. br.Data = lists
  1743. case 3:
  1744. items, err := data_manage.GetBaseFromCoalmineFirmIndexByCode(indexCode)
  1745. if err != nil {
  1746. br.Msg = "获取煤炭数据失败"
  1747. br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
  1748. return
  1749. }
  1750. groups, err := data_manage.GetGroupNameFromCoalmineIndex(suffix)
  1751. if err != nil {
  1752. br.Msg = "获取煤炭分类数据失败"
  1753. br.ErrMsg = "获取煤炭度分类数据失败,Err: " + err.Error()
  1754. return
  1755. }
  1756. groupMap := make(map[string]int)
  1757. firmId := 300
  1758. for _, group := range groups {
  1759. firmId++
  1760. groupMap[*group] = firmId
  1761. }
  1762. var lists []data_manage.CoalmineSingalDataResp
  1763. var resp data_manage.CoalmineSingalDataResp
  1764. classify := items[0].IndexName
  1765. for i, item := range items {
  1766. if item.IndexName != classify {
  1767. lists = append(lists, resp)
  1768. classify = item.IndexName
  1769. }
  1770. resp.IndexName = item.IndexName
  1771. resp.IndexCode = item.IndexCode
  1772. resp.Unit = item.Unit
  1773. resp.GroupId = groupMap[item.GroupName]
  1774. resp.GroupName = item.GroupName
  1775. resp.Frequency = item.Frequency
  1776. resp.ModifyTime = item.ModifyTime
  1777. resp.ClassifyId = classifyId
  1778. //组装dataList
  1779. var dataItem data_manage.DataList
  1780. dataItem.DataTime = item.DataTime
  1781. dataItem.Value = item.DealValue
  1782. resp.DataList = append(resp.DataList, dataItem)
  1783. if i == len(items)-1 {
  1784. lists = append(lists, resp)
  1785. }
  1786. }
  1787. br.Ret = 200
  1788. br.Success = true
  1789. br.Msg = "获取成功"
  1790. br.Data = lists
  1791. case 4:
  1792. items, err := data_manage.GetBaseFromCoalmineCoastalIndexByCode(indexCode)
  1793. if err != nil {
  1794. br.Msg = "获取煤炭数据失败"
  1795. br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
  1796. return
  1797. }
  1798. groups, err := data_manage.GetGroupNameFromCoalmineIndex(suffix)
  1799. if err != nil {
  1800. br.Msg = "获取煤炭分类数据失败"
  1801. br.ErrMsg = "获取煤炭度分类数据失败,Err: " + err.Error()
  1802. return
  1803. }
  1804. groupMap := make(map[string]int)
  1805. coastalId := 400
  1806. for _, group := range groups {
  1807. coastalId++
  1808. groupMap[*group] = coastalId
  1809. }
  1810. var lists []data_manage.CoalmineSingalDataResp
  1811. var resp data_manage.CoalmineSingalDataResp
  1812. classify := items[0].IndexName
  1813. for i, item := range items {
  1814. if item.IndexName != classify {
  1815. lists = append(lists, resp)
  1816. classify = item.IndexName
  1817. }
  1818. resp.IndexName = item.IndexName
  1819. resp.IndexCode = item.IndexCode
  1820. resp.Unit = item.Unit
  1821. resp.GroupId = groupMap[item.GroupName]
  1822. resp.GroupName = item.GroupName
  1823. resp.Frequency = item.Frequency
  1824. resp.ModifyTime = item.ModifyTime
  1825. resp.ClassifyId = classifyId
  1826. //组装dataList
  1827. var dataItem data_manage.DataList
  1828. dataItem.DataTime = item.DataTime
  1829. dataItem.Value = item.DealValue
  1830. resp.DataList = append(resp.DataList, dataItem)
  1831. if i == len(items)-1 {
  1832. lists = append(lists, resp)
  1833. }
  1834. }
  1835. br.Ret = 200
  1836. br.Success = true
  1837. br.Msg = "获取成功"
  1838. br.Data = lists
  1839. case 5:
  1840. items, err := data_manage.GetBaseFromCoalmineInlandIndexByCode(indexCode)
  1841. if err != nil {
  1842. br.Msg = "获取煤炭数据失败"
  1843. br.ErrMsg = "获取煤炭度数据失败,Err:" + err.Error()
  1844. return
  1845. }
  1846. groups, err := data_manage.GetGroupNameFromCoalmineIndex(suffix)
  1847. if err != nil {
  1848. br.Msg = "获取煤炭分类数据失败"
  1849. br.ErrMsg = "获取煤炭度分类数据失败,Err: " + err.Error()
  1850. return
  1851. }
  1852. groupMap := make(map[string]int)
  1853. inlandId := 500
  1854. for _, group := range groups {
  1855. inlandId++
  1856. groupMap[*group] = inlandId
  1857. }
  1858. var lists []data_manage.CoalmineSingalDataResp
  1859. var resp data_manage.CoalmineSingalDataResp
  1860. classify := items[0].IndexName
  1861. for i, item := range items {
  1862. if item.IndexName != classify {
  1863. lists = append(lists, resp)
  1864. classify = item.IndexName
  1865. }
  1866. resp.IndexName = item.IndexName
  1867. resp.IndexCode = item.IndexCode
  1868. resp.Unit = item.Unit
  1869. resp.GroupId = groupMap[item.GroupName]
  1870. resp.GroupName = item.GroupName
  1871. resp.Frequency = item.Frequency
  1872. resp.ModifyTime = item.ModifyTime
  1873. resp.ClassifyId = classifyId
  1874. //组装dataList
  1875. var dataItem data_manage.DataList
  1876. dataItem.DataTime = item.DataTime
  1877. dataItem.Value = item.DealValue
  1878. resp.DataList = append(resp.DataList, dataItem)
  1879. if i == len(items)-1 {
  1880. lists = append(lists, resp)
  1881. }
  1882. }
  1883. br.Ret = 200
  1884. br.Success = true
  1885. br.Msg = "获取成功"
  1886. br.Data = lists
  1887. default:
  1888. br.Msg = "获取煤炭数据失败"
  1889. br.ErrMsg = "获取煤炭度数据失败,Err: indexCode 错误"
  1890. return
  1891. }
  1892. }
  1893. // EicLatestDateV2
  1894. // @title 获取欧洲天然气最新日期V2
  1895. // @Description 获取欧洲天然气最新日期接口
  1896. // @Success 200 {object} models.
  1897. // @router /data/eicLatestDateV2 [get]
  1898. func (this *TradeCommonController) EicLatestDateV2() {
  1899. br := new(models.BaseResponse).Init()
  1900. defer func() {
  1901. this.Data["json"] = br
  1902. this.ServeJSON()
  1903. }()
  1904. latestData, err := data_manage.GetEicDateV2()
  1905. if err != nil {
  1906. br.Msg = "获取日期失败"
  1907. br.ErrMsg = "获取日期失败,Err:" + err.Error()
  1908. return
  1909. }
  1910. br.Ret = 200
  1911. br.Success = true
  1912. br.Msg = "获取成功"
  1913. br.Data = latestData[0].GasDayStart
  1914. }
  1915. type EicDataV2 struct {
  1916. Name string `json:"name" description:"指标名称"`
  1917. Code string `json:"code" description:"指标编码"`
  1918. GasDayStart string `json:"gasDayStart" description:"指标日期"`
  1919. GasInStorage float64 `json:"gasInStorage" description:"储存容量"`
  1920. Consumption string `json:"consumption" description:"消耗"`
  1921. ConsumptionFull string `json:"consumptionFull" description:"消耗百分比"`
  1922. Injection float64 `json:"injection" description:"注入量"`
  1923. Withdrawal float64 `json:"withdrawal" description:"减少量"`
  1924. WorkingGasVolume float64 `json:"workingGasVolume" description:"工作气体量"`
  1925. InjectionCapacity float64 `json:"injectionCapacity" description:"注入速度"`
  1926. WithdrawalCapacity float64 `json:"withdrawalCapacity" description:"减少速度"`
  1927. Status string `json:"status" description:"状态"`
  1928. Trend float64 `json:"trend" description:"较前日对比"`
  1929. Full float64 `json:"full" description:"储存容量百分比"`
  1930. Info string `json:"info" description:"信息"`
  1931. Children []EicDataV2 `json:"children"`
  1932. }
  1933. // eicDataV2
  1934. // @title 获取欧洲天然气列表
  1935. // @Description 获取欧洲天然气列表接口
  1936. // @Param Date query string true "查询日期"
  1937. // @Success 200 {object} models.
  1938. // @router /data/eicDataV2 [get]
  1939. func (this *TradeCommonController) EicDataV2() {
  1940. br := new(models.BaseResponse).Init()
  1941. defer func() {
  1942. this.Data["json"] = br
  1943. this.ServeJSON()
  1944. }()
  1945. date := this.GetString("Date")
  1946. list, err := data_manage.GetEicDataV2(date)
  1947. if err != nil {
  1948. br.Msg = "获取天然气数据失败"
  1949. br.ErrMsg = "获取天然气数据失败,Err:" + err.Error()
  1950. return
  1951. }
  1952. var continentItems []data_manage.BaseFromTradeEicIndexV2
  1953. var countryItems []data_manage.BaseFromTradeEicIndexV2
  1954. var ssoItems []data_manage.BaseFromTradeEicIndexV2
  1955. var facItems []data_manage.BaseFromTradeEicIndexV2
  1956. for _, item := range list {
  1957. switch item.Type {
  1958. case "continent":
  1959. continentItems = append(continentItems, *item)
  1960. case "country":
  1961. countryItems = append(countryItems, *item)
  1962. case "sso":
  1963. ssoItems = append(ssoItems, *item)
  1964. case "fac":
  1965. facItems = append(facItems, *item)
  1966. default:
  1967. continue
  1968. }
  1969. }
  1970. var data []data_manage.BaseFromTradeEicIndexV2
  1971. data = continentItems
  1972. for i, continentItem := range continentItems {
  1973. for _, countryItem := range countryItems {
  1974. if countryItem.Parent == continentItem.Name {
  1975. data[i].Children = append(data[i].Children, countryItem)
  1976. }
  1977. }
  1978. for j, country := range data[i].Children {
  1979. for _, ssoItem := range ssoItems {
  1980. if country.Name == ssoItem.Parent {
  1981. data[i].Children[j].Children = append(data[i].Children[j].Children, ssoItem)
  1982. }
  1983. }
  1984. for k, sso := range data[i].Children[j].Children {
  1985. for _, facItem := range facItems {
  1986. if sso.Name == facItem.Parent {
  1987. data[i].Children[j].Children[k].Children = append(data[i].Children[j].Children[k].Children, facItem)
  1988. }
  1989. }
  1990. }
  1991. }
  1992. }
  1993. br.Ret = 200
  1994. br.Success = true
  1995. br.Msg = "获取成功"
  1996. br.Data = data
  1997. }
  1998. // EicHistoryDataV2
  1999. // @title 获取欧洲天然气历史列表
  2000. // @Description 获取欧洲天然气历史列表接口
  2001. // @Param Code query string true "Code"
  2002. // @Param StartDate query string false "开始时间"
  2003. // @Param EndDate query string false "结束时间"
  2004. // @Success 200 {object} []EicDataV2
  2005. // @router /data/eicHistoryDataV2 [get]
  2006. func (this *TradeCommonController) EicHistoryDataV2() {
  2007. br := new(models.BaseResponse).Init()
  2008. defer func() {
  2009. this.Data["json"] = br
  2010. this.ServeJSON()
  2011. }()
  2012. code := this.GetString("Code")
  2013. startDate := this.GetString("StartDate")
  2014. endDate := this.GetString("EndDate")
  2015. var eicList []*data_manage.BaseFromTradeEicIndexV2
  2016. var err error
  2017. if endDate != "" {
  2018. eicList, err = data_manage.GetEicHistoryDateByDateV2(code, startDate, endDate)
  2019. if err != nil {
  2020. br.Msg = "获取持仓排名失败"
  2021. br.ErrMsg = "获取持仓排名失败,Err:" + err.Error()
  2022. return
  2023. }
  2024. } else {
  2025. eicList, err = data_manage.GetEicHistoryDateV2(code)
  2026. if err != nil {
  2027. br.Msg = "获取持仓排名失败"
  2028. br.ErrMsg = "获取持仓排名失败,Err:" + err.Error()
  2029. return
  2030. }
  2031. }
  2032. var data []EicDataV2
  2033. for _, eic := range eicList {
  2034. item := EicDataV2{
  2035. Name: eic.Name,
  2036. Code: eic.EicCode,
  2037. GasDayStart: eic.GasDayStart,
  2038. GasInStorage: eic.GasInStorage,
  2039. Consumption: eic.Consumption,
  2040. ConsumptionFull: eic.ConsumptionFull,
  2041. Injection: eic.Injection,
  2042. Withdrawal: eic.Withdrawal,
  2043. WorkingGasVolume: eic.WorkingGasVolume,
  2044. InjectionCapacity: eic.InjectionCapacity,
  2045. WithdrawalCapacity: eic.WithdrawalCapacity,
  2046. Status: eic.Status,
  2047. Trend: eic.Trend,
  2048. Full: eic.Full,
  2049. Info: eic.Info,
  2050. }
  2051. data = append(data, item)
  2052. }
  2053. br.Ret = 200
  2054. br.Success = true
  2055. br.Msg = "获取成功"
  2056. br.Data = data
  2057. }
  2058. // eicContinentV2 欧洲天然气洲际及国家级列表
  2059. // @title 欧洲天然气洲际及国家级列表
  2060. // @Description 欧洲天然气洲际及国家级列表
  2061. // @Param Date query string true "查询日期"
  2062. // @Success 200 {object} []data_manage.BaseFromTradeEicIndexV2
  2063. // @router /data/eicContinentV2 [get]
  2064. func (this *TradeCommonController) EicContinentListV2() {
  2065. br := new(models.BaseResponse).Init()
  2066. defer func() {
  2067. this.Data["json"] = br
  2068. this.ServeJSON()
  2069. }()
  2070. date := this.GetString("Date")
  2071. list, err := data_manage.GetContinentAndCountryEicDateV2(date)
  2072. if err != nil {
  2073. br.Msg = "获取天然气数据失败"
  2074. br.ErrMsg = "获取天然气数据失败,Err:" + err.Error()
  2075. return
  2076. }
  2077. var continentItems []data_manage.BaseFromTradeEicIndexV2
  2078. var countryItems []data_manage.BaseFromTradeEicIndexV2
  2079. for _, item := range list {
  2080. switch item.Type {
  2081. case "continent":
  2082. continentItems = append(continentItems, *item)
  2083. case "country":
  2084. countryItems = append(countryItems, *item)
  2085. default:
  2086. continue
  2087. }
  2088. }
  2089. var data []data_manage.BaseFromTradeEicIndexV2
  2090. data = continentItems
  2091. for i, continentItem := range continentItems {
  2092. for _, countryItem := range countryItems {
  2093. if countryItem.Parent == continentItem.Name {
  2094. data[i].Children = append(data[i].Children, countryItem)
  2095. }
  2096. }
  2097. }
  2098. br.Ret = 200
  2099. br.Success = true
  2100. br.Msg = "获取成功"
  2101. br.Data = data
  2102. }
  2103. // EicDataListV2 欧洲天然气细节列表
  2104. // @title 欧洲天然气细节列表
  2105. // @Description 欧洲天然气细节列表
  2106. // @Param Date query string true "查询日期"
  2107. // @Param Name query string true "国家"
  2108. // @Success 200 {object} []data_manage.BaseFromTradeEicIndexV2
  2109. // @router /data/eicSSODataV2 [get]
  2110. func (this *TradeCommonController) EicDataListV2() {
  2111. br := new(models.BaseResponse).Init()
  2112. defer func() {
  2113. this.Data["json"] = br
  2114. this.ServeJSON()
  2115. }()
  2116. date := this.GetString("Date")
  2117. name := this.GetString("Name")
  2118. list, err := data_manage.GetSSOAndFacEicDateV2(date, name)
  2119. if err != nil {
  2120. br.Msg = "获取天然气数据失败"
  2121. br.ErrMsg = "获取天然气数据失败,Err:" + err.Error()
  2122. return
  2123. }
  2124. var ssoItems []data_manage.BaseFromTradeEicIndexV2
  2125. var facItems []data_manage.BaseFromTradeEicIndexV2
  2126. for _, item := range list {
  2127. switch item.Type {
  2128. case "sso":
  2129. ssoItems = append(ssoItems, *item)
  2130. case "fac":
  2131. facItems = append(facItems, *item)
  2132. default:
  2133. continue
  2134. }
  2135. }
  2136. i := 0
  2137. var data []data_manage.BaseFromTradeEicIndexV2
  2138. for _, ssoItem := range ssoItems {
  2139. if ssoItem.Parent == name {
  2140. data = append(data, ssoItem)
  2141. for _, facItem := range facItems {
  2142. if facItem.Parent == ssoItem.Name {
  2143. data[i].Children = append(data[i].Children, facItem)
  2144. }
  2145. }
  2146. i++
  2147. }
  2148. }
  2149. br.Ret = 200
  2150. br.Success = true
  2151. br.Msg = "获取成功"
  2152. br.Data = data
  2153. }