init_base_index.go 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734
  1. package services
  2. import (
  3. "encoding/json"
  4. "eta/eta_data_init/models"
  5. "eta/eta_data_init/utils"
  6. "fmt"
  7. "github.com/xuri/excelize/v2"
  8. "os"
  9. "path/filepath"
  10. "strings"
  11. )
  12. // InitBaseIndexData 初始化基础指标数据
  13. func InitBaseIndexData(dataPath string) {
  14. var err error
  15. defer func() {
  16. if err != nil {
  17. fmt.Println("InitBaseIndexData Err:" + err.Error())
  18. }
  19. }()
  20. //读取excel
  21. path, err := filepath.Abs(os.Args[0])
  22. if err != nil {
  23. fmt.Println(err)
  24. }
  25. dir := filepath.Dir(path)
  26. fmt.Println("dir:" + dir)
  27. //dataPath := dir + "/docs/东吴ETA同花顺指标20230925.xlsx"
  28. dataPath = dir + dataPath
  29. fmt.Println("dataPath:" + dataPath)
  30. f, err := excelize.OpenFile(dataPath)
  31. if err != nil {
  32. fmt.Println(err)
  33. return
  34. }
  35. defer func() {
  36. // Close the spreadsheet.
  37. if err := f.Close(); err != nil {
  38. fmt.Println(err)
  39. }
  40. }()
  41. rows, err := f.GetRows("Sheet1")
  42. if err != nil {
  43. fmt.Println(err)
  44. return
  45. }
  46. fmt.Println("rows len:", len(rows))
  47. // 获取创建人信息
  48. admins, e := models.GetSysAdminList(``, make([]interface{}, 0))
  49. if e != nil {
  50. err = fmt.Errorf("GetSysAdminList err: %s", e.Error())
  51. return
  52. }
  53. mobileMap := make(map[string]*models.Admin)
  54. for _, v := range admins {
  55. if v.Mobile == "" {
  56. continue
  57. }
  58. mobileMap[v.Mobile] = v
  59. }
  60. for rk, row := range rows {
  61. if rk > 0 {
  62. var classifyFirst, classifySecond, classifyThree, indexCode, indexName, frequency, unit, source, mobile string
  63. for ck, colCell := range row {
  64. colCell = strings.TrimSpace(colCell)
  65. switch ck {
  66. case 0:
  67. classifyFirst = colCell
  68. case 1:
  69. classifySecond = colCell
  70. case 2:
  71. classifyThree = colCell
  72. case 3:
  73. indexCode = colCell
  74. case 4:
  75. indexName = colCell
  76. case 5:
  77. frequency = colCell
  78. case 6:
  79. unit = colCell
  80. case 7:
  81. source = colCell
  82. case 8:
  83. mobile = colCell
  84. }
  85. }
  86. if classifyFirst != "" &&
  87. classifySecond != "" &&
  88. classifyThree != "" &&
  89. indexCode != "" &&
  90. indexName != "" &&
  91. unit != "" &&
  92. frequency != "" &&
  93. source != "" {
  94. method := "classify/get_or_add"
  95. classifyFirstMap := make(map[string]interface{})
  96. classifyFirstMap["ClassifyName"] = classifyFirst
  97. classifyFirstMap["ParentId"] = 0
  98. classifyFirstMap["Level"] = 0
  99. classifyFirstMap["ClassifyType"] = 0
  100. result, err := PostEdbLib(classifyFirstMap, method)
  101. if err != nil {
  102. utils.FileLog.Info("初始化分类1失败:" + err.Error())
  103. return
  104. }
  105. resp := new(models.ClassifyResp)
  106. err = json.Unmarshal(result, &resp)
  107. if err != nil {
  108. utils.FileLog.Info("初始化分类1失败:" + err.Error())
  109. return
  110. }
  111. if resp.Ret != 200 {
  112. utils.FileLog.Info("初始化分类1失败:" + resp.Msg + ";" + resp.ErrMsg)
  113. return
  114. }
  115. classifySecondMap := make(map[string]interface{})
  116. classifySecondMap["ClassifyName"] = classifySecond
  117. classifySecondMap["ParentId"] = resp.Data.ClassifyId
  118. classifySecondMap["Level"] = 1
  119. classifySecondMap["ClassifyType"] = 0
  120. result, err = PostEdbLib(classifySecondMap, method)
  121. if err != nil {
  122. utils.FileLog.Info("初始化分类2失败:" + err.Error())
  123. return
  124. }
  125. resp = new(models.ClassifyResp)
  126. err = json.Unmarshal(result, &resp)
  127. if err != nil {
  128. utils.FileLog.Info("初始化分类2失败:" + err.Error())
  129. return
  130. }
  131. if resp.Ret != 200 {
  132. utils.FileLog.Info("初始化分类2失败:" + resp.Msg + ";" + resp.ErrMsg)
  133. return
  134. }
  135. classifyThreeMap := make(map[string]interface{})
  136. classifyThreeMap["ClassifyName"] = classifyThree
  137. classifyThreeMap["ParentId"] = resp.Data.ClassifyId
  138. classifyThreeMap["Level"] = 2
  139. classifyThreeMap["ClassifyType"] = 0
  140. result, err = PostEdbLib(classifyThreeMap, method)
  141. if err != nil {
  142. utils.FileLog.Info("初始化分类3失败:" + err.Error())
  143. return
  144. }
  145. resp = new(models.ClassifyResp)
  146. err = json.Unmarshal(result, &resp)
  147. if err != nil {
  148. utils.FileLog.Info("初始化分类3失败:" + err.Error())
  149. return
  150. }
  151. if resp.Ret != 200 {
  152. utils.FileLog.Info("初始化分类3失败:" + resp.Msg + ";" + resp.ErrMsg)
  153. return
  154. }
  155. method = "edb_info/add"
  156. sourceId, ok := IndexSourceMap[source]
  157. if !ok {
  158. fmt.Println("source is not defined")
  159. fmt.Println(classifyFirst, classifySecond, classifyThree, indexCode, indexName, frequency, unit, source)
  160. continue
  161. }
  162. indexMap := make(map[string]interface{})
  163. indexMap["Source"] = sourceId
  164. indexMap["EdbCode"] = indexCode
  165. indexMap["EdbName"] = indexName
  166. indexMap["Frequency"] = frequency
  167. indexMap["Unit"] = unit
  168. indexMap["ClassifyId"] = resp.Data.ClassifyId
  169. admin := mobileMap[mobile]
  170. if admin != nil {
  171. indexMap["AdminId"] = admin.AdminId
  172. indexMap["AdminName"] = admin.RealName
  173. }
  174. result, err = PostEdbLib(indexMap, method)
  175. if err != nil {
  176. utils.FileLog.Info("初始化指标失败:" + err.Error() + " result:" + string(result))
  177. return
  178. }
  179. indexResp := new(models.EdbInfoResp)
  180. err = json.Unmarshal(result, &indexResp)
  181. if err != nil {
  182. utils.FileLog.Info("初始化分类2失败:" + err.Error())
  183. return
  184. }
  185. if indexResp.Ret != 200 {
  186. if strings.Contains(indexResp.Msg, "新增指标失败") {
  187. continue
  188. } else {
  189. fmt.Println("初始化指标失败:" + indexResp.Msg + ";" + indexResp.ErrMsg)
  190. utils.FileLog.Info("初始化指标失败:" + indexResp.Msg + ";" + indexResp.ErrMsg)
  191. return
  192. }
  193. }
  194. fmt.Println("add index success:" + indexCode)
  195. //刷新指标
  196. {
  197. switch source {
  198. case "wind", "万得":
  199. method = "wind/refresh"
  200. case "ths", "同花顺":
  201. method = "ths/refresh"
  202. case "彭博":
  203. method = "pb/refresh"
  204. case "":
  205. }
  206. if method != `` {
  207. refreshMap := make(map[string]interface{})
  208. refreshMap["EdbInfoId"] = indexResp.Data.EdbInfoId
  209. refreshMap["EdbCode"] = indexCode
  210. refreshMap["StartDate"] = "1990-01-01"
  211. PostEdbLib(refreshMap, method)
  212. }
  213. }
  214. } else {
  215. fmt.Println("data is empty")
  216. fmt.Println(classifyFirst, classifySecond, classifyThree, indexCode, indexName, frequency, unit, source)
  217. }
  218. }
  219. }
  220. }
  221. // 初始化基础指标数据-钢联
  222. func InitBaseIndexDataFromMysteel(filePath string) {
  223. var err error
  224. defer func() {
  225. if err != nil {
  226. fmt.Println("InitBaseIndexDataFromMysteel Err:" + err.Error())
  227. utils.FileLog.Info("InitBaseIndexDataFromMysteel Err:" + err.Error())
  228. }
  229. }()
  230. //读取excel
  231. path, err := filepath.Abs(os.Args[0])
  232. if err != nil {
  233. fmt.Println(err)
  234. }
  235. dir := filepath.Dir(path)
  236. fmt.Println("dir:" + dir)
  237. dataPath := dir + filePath
  238. fmt.Println("dataPath:" + dataPath)
  239. f, err := excelize.OpenFile(dataPath)
  240. if err != nil {
  241. fmt.Println(err)
  242. return
  243. }
  244. defer func() {
  245. // Close the spreadsheet.
  246. if err := f.Close(); err != nil {
  247. fmt.Println(err)
  248. }
  249. }()
  250. rows, err := f.GetRows("Sheet1")
  251. if err != nil {
  252. fmt.Println(err)
  253. return
  254. }
  255. fmt.Println("rows len:", len(rows))
  256. // 获取创建人信息
  257. admins, e := models.GetSysAdminList(``, make([]interface{}, 0))
  258. if e != nil {
  259. err = fmt.Errorf("GetSysAdminList err: %s", e.Error())
  260. return
  261. }
  262. mobileMap := make(map[string]*models.Admin)
  263. for _, v := range admins {
  264. if v.Mobile == "" {
  265. continue
  266. }
  267. mobileMap[v.Mobile] = v
  268. }
  269. for rk, row := range rows {
  270. if rk > 0 {
  271. var classifyFirst, classifySecond, classifyThree, indexCode, indexName, frequency, unit, source, mobile string
  272. for ck, colCell := range row {
  273. colCell = strings.TrimSpace(colCell)
  274. switch ck {
  275. case 0:
  276. classifyFirst = colCell
  277. case 1:
  278. classifySecond = colCell
  279. case 2:
  280. classifyThree = colCell
  281. case 3:
  282. indexCode = colCell
  283. case 4:
  284. indexName = colCell
  285. case 5:
  286. frequency = colCell
  287. case 6:
  288. unit = colCell
  289. case 7:
  290. source = colCell
  291. case 8:
  292. mobile = colCell
  293. }
  294. }
  295. if classifyFirst != "" &&
  296. classifySecond != "" &&
  297. classifyThree != "" &&
  298. indexCode != "" &&
  299. indexName != "" &&
  300. unit != "" &&
  301. frequency != "" &&
  302. source != "" {
  303. //判断指标是否存在
  304. method := "mysteel_chemical/index_detail"
  305. indexSearchMap := make(map[string]interface{})
  306. indexSearchMap["IndexCode"] = indexCode
  307. indexResult, err := PostEdbLib(indexSearchMap, method)
  308. if err != nil {
  309. fmt.Println("判断指标是否存在失败,Err:" + err.Error())
  310. return
  311. }
  312. mysteelIndexResp := new(models.MysteelIndexResp)
  313. err = json.Unmarshal(indexResult, &mysteelIndexResp)
  314. if err != nil {
  315. utils.FileLog.Info("判断指标是否存在失败:" + err.Error())
  316. fmt.Println("判断指标是否存在失败,Err:" + err.Error())
  317. return
  318. }
  319. if mysteelIndexResp.Ret != 200 {
  320. fmt.Println("判断指标是否存在失败,Err:" + mysteelIndexResp.ErrMsg)
  321. //utils.FileLog.Info("判断指标是否存在失败:" + err.Error())
  322. //return
  323. continue
  324. }
  325. if mysteelIndexResp.Data.BaseFromMysteelChemicalIndexId <= 0 {
  326. fmt.Println("指标:" + indexCode + ";不存在")
  327. continue
  328. }
  329. method = "classify/get_or_add"
  330. classifyFirstMap := make(map[string]interface{})
  331. classifyFirstMap["ClassifyName"] = classifyFirst
  332. classifyFirstMap["ParentId"] = 0
  333. classifyFirstMap["Level"] = 0
  334. classifyFirstMap["ClassifyType"] = 0
  335. result, err := PostEdbLib(classifyFirstMap, method)
  336. if err != nil {
  337. utils.FileLog.Info("初始化分类1失败:" + err.Error())
  338. return
  339. }
  340. resp := new(models.ClassifyResp)
  341. err = json.Unmarshal(result, &resp)
  342. if err != nil {
  343. utils.FileLog.Info("初始化分类1失败:" + err.Error())
  344. return
  345. }
  346. if resp.Ret != 200 {
  347. utils.FileLog.Info("初始化分类1失败:" + resp.Msg + ";" + resp.ErrMsg)
  348. return
  349. }
  350. classifySecondMap := make(map[string]interface{})
  351. classifySecondMap["ClassifyName"] = classifySecond
  352. classifySecondMap["ParentId"] = resp.Data.ClassifyId
  353. classifySecondMap["Level"] = 1
  354. classifySecondMap["ClassifyType"] = 0
  355. result, err = PostEdbLib(classifySecondMap, method)
  356. if err != nil {
  357. utils.FileLog.Info("初始化分类2失败:" + err.Error())
  358. return
  359. }
  360. resp = new(models.ClassifyResp)
  361. err = json.Unmarshal(result, &resp)
  362. if err != nil {
  363. utils.FileLog.Info("初始化分类2失败:" + err.Error())
  364. return
  365. }
  366. if resp.Ret != 200 {
  367. utils.FileLog.Info("初始化分类2失败:" + resp.Msg + ";" + resp.ErrMsg)
  368. return
  369. }
  370. classifyThreeMap := make(map[string]interface{})
  371. classifyThreeMap["ClassifyName"] = classifyThree
  372. classifyThreeMap["ParentId"] = resp.Data.ClassifyId
  373. classifyThreeMap["Level"] = 2
  374. classifyThreeMap["ClassifyType"] = 0
  375. result, err = PostEdbLib(classifyThreeMap, method)
  376. if err != nil {
  377. utils.FileLog.Info("初始化分类3失败:" + err.Error())
  378. return
  379. }
  380. resp = new(models.ClassifyResp)
  381. err = json.Unmarshal(result, &resp)
  382. if err != nil {
  383. utils.FileLog.Info("初始化分类3失败:" + err.Error())
  384. return
  385. }
  386. if resp.Ret != 200 {
  387. utils.FileLog.Info("初始化分类3失败:" + resp.Msg + ";" + resp.ErrMsg)
  388. return
  389. }
  390. method = "edb_info/add"
  391. indexMap := make(map[string]interface{})
  392. indexMap["Source"] = IndexSourceMap[source]
  393. indexMap["EdbCode"] = indexCode
  394. indexMap["EdbName"] = indexName
  395. indexMap["Frequency"] = frequency
  396. indexMap["Unit"] = unit
  397. indexMap["ClassifyId"] = resp.Data.ClassifyId
  398. admin := mobileMap[mobile]
  399. if admin != nil {
  400. indexMap["AdminId"] = admin.AdminId
  401. indexMap["AdminName"] = admin.RealName
  402. }
  403. result, err = PostEdbLib(indexMap, method)
  404. if err != nil {
  405. utils.FileLog.Info("初始化指标失败:" + err.Error() + " result:" + string(result))
  406. return
  407. }
  408. indexResp := new(models.EdbInfoResp)
  409. err = json.Unmarshal(result, &indexResp)
  410. if err != nil {
  411. utils.FileLog.Info("初始化分类2失败:" + err.Error())
  412. return
  413. }
  414. if indexResp.Ret != 200 {
  415. if strings.Contains(indexResp.Msg, "新增指标失败") {
  416. continue
  417. } else {
  418. fmt.Println("初始化指标失败:" + indexResp.Msg + ";" + indexResp.ErrMsg)
  419. utils.FileLog.Info("初始化指标失败:" + indexResp.Msg + ";" + indexResp.ErrMsg)
  420. return
  421. }
  422. }
  423. fmt.Println("add index success:" + indexCode)
  424. //刷新指标
  425. method = "mysteel_chemical/refresh"
  426. refreshMap := make(map[string]interface{})
  427. refreshMap["EdbInfoId"] = indexResp.Data.EdbInfoId
  428. refreshMap["EdbCode"] = indexCode
  429. refreshMap["StartDate"] = "1990-01-01"
  430. PostEdbLib(refreshMap, method)
  431. } else {
  432. fmt.Println("data is empty")
  433. fmt.Println(classifyFirst, classifySecond, classifyThree, indexCode, indexName, frequency, unit, source)
  434. }
  435. }
  436. }
  437. }
  438. // 初始化基础指标数据-有色
  439. func InitBaseIndexDataFromDataSourceSmm(filePath string) {
  440. var err error
  441. defer func() {
  442. if err != nil {
  443. fmt.Println("InitBaseIndexDataFromDataSourceSmm Err:" + err.Error())
  444. utils.FileLog.Info("InitBaseIndexDataFromDataSourceSmm Err:" + err.Error())
  445. }
  446. }()
  447. //读取excel
  448. path, err := filepath.Abs(os.Args[0])
  449. if err != nil {
  450. fmt.Println(err)
  451. }
  452. dir := filepath.Dir(path)
  453. fmt.Println("dir:" + dir)
  454. dataPath := dir + filePath
  455. fmt.Println("dataPath:" + dataPath)
  456. f, err := excelize.OpenFile(dataPath)
  457. if err != nil {
  458. fmt.Println(err)
  459. return
  460. }
  461. defer func() {
  462. // Close the spreadsheet.
  463. if err := f.Close(); err != nil {
  464. fmt.Println(err)
  465. }
  466. }()
  467. rows, err := f.GetRows("Sheet1")
  468. if err != nil {
  469. fmt.Println(err)
  470. return
  471. }
  472. fmt.Println("rows len:", len(rows))
  473. // 获取创建人信息
  474. admins, e := models.GetSysAdminList(``, make([]interface{}, 0))
  475. if e != nil {
  476. err = fmt.Errorf("GetSysAdminList err: %s", e.Error())
  477. return
  478. }
  479. mobileMap := make(map[string]*models.Admin)
  480. for _, v := range admins {
  481. if v.Mobile == "" {
  482. continue
  483. }
  484. mobileMap[v.Mobile] = v
  485. }
  486. for rk, row := range rows {
  487. if rk > 0 {
  488. var classifyFirst, classifySecond, classifyThree, indexCode, indexName, frequency, unit, source, mobile string
  489. for ck, colCell := range row {
  490. colCell = strings.TrimSpace(colCell)
  491. switch ck {
  492. case 0:
  493. classifyFirst = colCell
  494. case 1:
  495. classifySecond = colCell
  496. case 2:
  497. classifyThree = colCell
  498. case 3:
  499. indexCode = colCell
  500. case 4:
  501. indexName = colCell
  502. case 5:
  503. frequency = colCell
  504. case 6:
  505. unit = colCell
  506. case 7:
  507. source = colCell
  508. case 8:
  509. mobile = colCell
  510. }
  511. }
  512. if classifyFirst != "" &&
  513. classifySecond != "" &&
  514. classifyThree != "" &&
  515. indexCode != "" &&
  516. indexName != "" &&
  517. unit != "" &&
  518. frequency != "" &&
  519. source != "" {
  520. //判断指标是否存在
  521. method := "smm/index_detail/from_data_source"
  522. indexSearchMap := make(map[string]interface{})
  523. indexSearchMap["IndexCode"] = indexCode
  524. indexResult, err := PostEdbLib(indexSearchMap, method)
  525. if err != nil {
  526. fmt.Println("判断指标是否存在失败,Err:" + err.Error())
  527. return
  528. }
  529. smmIndexResp := new(models.BaseFromSmmIndexResp)
  530. err = json.Unmarshal(indexResult, &smmIndexResp)
  531. if err != nil {
  532. utils.FileLog.Info("判断指标是否存在失败:" + err.Error())
  533. fmt.Println("判断指标是否存在失败,Err:" + err.Error())
  534. return
  535. }
  536. if smmIndexResp.Ret != 200 {
  537. fmt.Println("判断指标是否存在失败,Err:" + smmIndexResp.ErrMsg)
  538. //utils.FileLog.Info("判断指标是否存在失败:" + err.Error())
  539. //return
  540. continue
  541. }
  542. if smmIndexResp.Data.BaseFromSmmIndexId <= 0 {
  543. fmt.Println("指标:" + indexCode + ";不存在")
  544. continue
  545. }
  546. method = "classify/get_or_add"
  547. classifyFirstMap := make(map[string]interface{})
  548. classifyFirstMap["ClassifyName"] = classifyFirst
  549. classifyFirstMap["ParentId"] = 0
  550. classifyFirstMap["Level"] = 0
  551. classifyFirstMap["ClassifyType"] = 0
  552. result, err := PostEdbLib(classifyFirstMap, method)
  553. if err != nil {
  554. utils.FileLog.Info("初始化分类1失败:" + err.Error())
  555. return
  556. }
  557. resp := new(models.ClassifyResp)
  558. err = json.Unmarshal(result, &resp)
  559. if err != nil {
  560. utils.FileLog.Info("初始化分类1失败:" + err.Error())
  561. return
  562. }
  563. if resp.Ret != 200 {
  564. utils.FileLog.Info("初始化分类1失败:" + resp.Msg + ";" + resp.ErrMsg)
  565. return
  566. }
  567. classifySecondMap := make(map[string]interface{})
  568. classifySecondMap["ClassifyName"] = classifySecond
  569. classifySecondMap["ParentId"] = resp.Data.ClassifyId
  570. classifySecondMap["Level"] = 1
  571. classifySecondMap["ClassifyType"] = 0
  572. result, err = PostEdbLib(classifySecondMap, method)
  573. if err != nil {
  574. utils.FileLog.Info("初始化分类2失败:" + err.Error())
  575. return
  576. }
  577. resp = new(models.ClassifyResp)
  578. err = json.Unmarshal(result, &resp)
  579. if err != nil {
  580. utils.FileLog.Info("初始化分类2失败:" + err.Error())
  581. return
  582. }
  583. if resp.Ret != 200 {
  584. utils.FileLog.Info("初始化分类2失败:" + resp.Msg + ";" + resp.ErrMsg)
  585. return
  586. }
  587. classifyThreeMap := make(map[string]interface{})
  588. classifyThreeMap["ClassifyName"] = classifyThree
  589. classifyThreeMap["ParentId"] = resp.Data.ClassifyId
  590. classifyThreeMap["Level"] = 2
  591. classifyThreeMap["ClassifyType"] = 0
  592. result, err = PostEdbLib(classifyThreeMap, method)
  593. if err != nil {
  594. utils.FileLog.Info("初始化分类3失败:" + err.Error())
  595. return
  596. }
  597. resp = new(models.ClassifyResp)
  598. err = json.Unmarshal(result, &resp)
  599. if err != nil {
  600. utils.FileLog.Info("初始化分类3失败:" + err.Error())
  601. return
  602. }
  603. if resp.Ret != 200 {
  604. utils.FileLog.Info("初始化分类3失败:" + resp.Msg + ";" + resp.ErrMsg)
  605. return
  606. }
  607. method = "edb_info/add"
  608. indexMap := make(map[string]interface{})
  609. indexMap["Source"] = IndexSourceMap[source]
  610. indexMap["EdbCode"] = indexCode
  611. indexMap["EdbName"] = indexName
  612. indexMap["Frequency"] = frequency
  613. indexMap["Unit"] = unit
  614. indexMap["ClassifyId"] = resp.Data.ClassifyId
  615. admin := mobileMap[mobile]
  616. if admin != nil {
  617. indexMap["AdminId"] = admin.AdminId
  618. indexMap["AdminName"] = admin.RealName
  619. }
  620. result, err = PostEdbLib(indexMap, method)
  621. if err != nil {
  622. utils.FileLog.Info("初始化指标失败:" + err.Error() + " result:" + string(result))
  623. return
  624. }
  625. indexResp := new(models.EdbInfoResp)
  626. err = json.Unmarshal(result, &indexResp)
  627. if err != nil {
  628. utils.FileLog.Info("初始化分类2失败:" + err.Error())
  629. return
  630. }
  631. if indexResp.Ret != 200 {
  632. if strings.Contains(indexResp.Msg, "新增指标失败") {
  633. continue
  634. } else {
  635. fmt.Println("初始化指标失败:" + indexResp.Msg + ";" + indexResp.ErrMsg)
  636. utils.FileLog.Info("初始化指标失败:" + indexResp.Msg + ";" + indexResp.ErrMsg)
  637. return
  638. }
  639. }
  640. fmt.Println("add index success:" + indexCode)
  641. //刷新指标
  642. {
  643. refreshMethod := "smm/refresh"
  644. refreshMap := make(map[string]interface{})
  645. refreshMap["EdbInfoId"] = indexResp.Data.EdbInfoId
  646. refreshMap["EdbCode"] = indexCode
  647. refreshMap["StartDate"] = "1990-01-01"
  648. PostEdbLib(refreshMap, refreshMethod)
  649. }
  650. } else {
  651. fmt.Println("data is empty")
  652. fmt.Println(classifyFirst, classifySecond, classifyThree, indexCode, indexName, frequency, unit, source)
  653. }
  654. }
  655. }
  656. }
  657. /*
  658. // PostEdbLib 调用指标接口
  659. func PostEdbLib(param map[string]interface{}, method string) (resp *models.BaseResponse, err error) {
  660. postUrl := utils.EDB_LIB_URL + method
  661. postData, err := json.Marshal(param)
  662. if err != nil {
  663. return
  664. }
  665. result, err := HttpPost(postUrl, string(postData), "application/json")
  666. if err != nil {
  667. return
  668. }
  669. err = json.Unmarshal(result, &resp)
  670. if err != nil {
  671. return
  672. }
  673. return resp, nil
  674. }
  675. */