commodity_trade_base_index.go 71 KB

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