edb_info.go 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. package data_manage
  2. import (
  3. "errors"
  4. "fmt"
  5. "hongze/hongze_task/models/data_manage"
  6. "hongze/hongze_task/utils"
  7. "rdluck_tools/http"
  8. "time"
  9. "context"
  10. )
  11. //刷新同花顺数据
  12. func RefreshDataFromThs() (err error) {
  13. defer func() {
  14. if err != nil {
  15. fmt.Println("RefreshDataFromThs Err:" + err.Error())
  16. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromThs ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  17. }
  18. }()
  19. var condition string
  20. var pars []interface{}
  21. condition += " AND source=? "
  22. pars = append(pars, utils.DATA_SOURCE_THS)
  23. items, err := data_manage.GetEdbInfoByCondition(condition, pars)
  24. if err != nil {
  25. return errors.New("GetEdbInfoByCondition:" + err.Error())
  26. }
  27. for _, v := range items {
  28. startDate := v.EndDate.AddDate(0, 0, -3).Format(utils.FormatDate)
  29. endDate := time.Now().Format(utils.FormatDate)
  30. err = SyncEdbDataByThs(int64(v.EdbInfoId), v.EdbCode, startDate, endDate)
  31. if err != nil {
  32. return errors.New("SyncEdbDataByThs:" + err.Error())
  33. }
  34. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  35. if err != nil {
  36. return err
  37. }
  38. if item != nil {
  39. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  40. if err != nil {
  41. return err
  42. }
  43. }
  44. //minDate, maxDate, err := data_manage.GetEdbDataThsMaxOrMinDate(v.EdbInfoId)
  45. //if err != nil {
  46. // return errors.New("GetEdbDataThsMaxOrMinDate:" + err.Error())
  47. //}
  48. //fmt.Println("minDate:" + minDate + ";maxDate:" + maxDate)
  49. //err = data_manage.ModifyEdbDataInfoDate(v.EdbInfoId, maxDate)
  50. //if err != nil {
  51. // return errors.New("ModifyEdbDataInfoDate:" + err.Error())
  52. //}
  53. }
  54. return err
  55. }
  56. //刷新万得数据
  57. func RefreshDataFromWind() (err error) {
  58. defer func() {
  59. if err != nil {
  60. fmt.Println("RefreshDataFromWind Err:" + err.Error())
  61. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromWind ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  62. }
  63. }()
  64. var condition string
  65. var pars []interface{}
  66. condition += " AND source=? "
  67. pars = append(pars, utils.DATA_SOURCE_WIND)
  68. items, err := data_manage.GetEdbInfoByCondition(condition, pars)
  69. if err != nil {
  70. return err
  71. }
  72. for k, v := range items {
  73. fmt.Println("line 67:", k, v.EdbCode)
  74. startDate := v.EndDate.AddDate(0, 0, -3).Format(utils.FormatDate)
  75. endDate := time.Now().Format(utils.FormatDate)
  76. err = SyncEdbDataByWind(int64(v.EdbInfoId), v.EdbCode, startDate, endDate)
  77. if err != nil {
  78. return err
  79. }
  80. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  81. if err != nil {
  82. return err
  83. }
  84. if item != nil {
  85. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  86. if err != nil {
  87. return err
  88. }
  89. }
  90. }
  91. return err
  92. }
  93. //刷新彭博数据
  94. func RefreshDataFromPb() (err error) {
  95. defer func() {
  96. if err != nil {
  97. fmt.Println("RefreshDataFromPb Err:" + err.Error())
  98. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromPb ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  99. }
  100. }()
  101. var condition string
  102. var pars []interface{}
  103. condition += " AND source=? "
  104. pars = append(pars, utils.DATA_SOURCE_PB)
  105. items, err := data_manage.GetEdbInfoByCondition(condition, pars)
  106. if err != nil {
  107. return errors.New("GetEdbInfoByCondition:" + err.Error())
  108. }
  109. for _, v := range items {
  110. startDate := v.EndDate.AddDate(0, 0, -3).Format(utils.FormatDateUnSpace)
  111. endDate := time.Now().Format(utils.FormatDateUnSpace)
  112. fmt.Println(startDate, endDate)
  113. err = SyncEdbDataByPb(int64(v.EdbInfoId), v.EdbCode, startDate, endDate)
  114. if err != nil {
  115. return errors.New("SyncEdbDataByPb:" + err.Error())
  116. }
  117. item, err := data_manage.GetEdbInfoMaxAndMinInfo(v.Source, v.EdbCode)
  118. if err != nil {
  119. return err
  120. }
  121. if item != nil {
  122. err = data_manage.ModifyEdbInfoMaxAndMinInfo(v.EdbInfoId, item)
  123. if err != nil {
  124. return err
  125. }
  126. }
  127. //minDate, maxDate, err := data_manage.GetEdbDataPbMaxOrMinDate(v.EdbInfoId)
  128. //if err != nil {
  129. // return errors.New("GetEdbDataThsMaxOrMinDate:" + err.Error())
  130. //}
  131. //fmt.Println("minDate:" + minDate + ";maxDate:" + maxDate)
  132. //err = data_manage.ModifyEdbDataInfoDate(v.EdbInfoId, maxDate)
  133. //if err != nil {
  134. // return errors.New("ModifyEdbDataInfoDate:" + err.Error())
  135. //}
  136. }
  137. return err
  138. }
  139. func CheckDataInterface() (err error) {
  140. go func() {
  141. checkUrl := utils.Hz_Data_Url + `hz_server`
  142. body, err := http.Get(checkUrl)
  143. if err != nil {
  144. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"检测数据接口:失败提醒", "CheckDataInterface ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  145. }
  146. result := string(body)
  147. if result != "1" {
  148. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"检测数据接口:失败提醒", "CheckDataInterface ErrMsg:"+string(body), utils.EmailSendToUsers)
  149. }
  150. }()
  151. return
  152. }
  153. func CheckPbDataInterface(cont context.Context) (err error) {
  154. go func() {
  155. checkUrl := utils.Hz_Data_PB_Url + `hz_server`
  156. body, err := http.Get(checkUrl)
  157. if err != nil {
  158. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"检测数据接口:失败提醒", "CheckPbDataInterface ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  159. }
  160. result := string(body)
  161. if result != "1" {
  162. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"检测数据接口:失败提醒", "CheckPbDataInterface ErrMsg:"+string(body), utils.EmailSendToUsers)
  163. }
  164. }()
  165. return
  166. }
  167. //刷新计算指标数据
  168. func RefreshDataFromCalculate() (err error) {
  169. defer func() {
  170. if err != nil {
  171. fmt.Println("RefreshDataFromCalculate Err:" + err.Error())
  172. go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromCalculate ErrMsg:"+err.Error(), utils.EmailSendToUsers)
  173. }
  174. }()
  175. var condition string
  176. var pars []interface{}
  177. condition += " AND source=? "
  178. pars = append(pars, utils.DATA_SOURCE_CALCULATE)
  179. items, err := data_manage.GetEdbInfoByCondition(condition, pars)
  180. if err != nil {
  181. return err
  182. }
  183. for _, v := range items {
  184. startDate := v.EndDate.AddDate(0, 0, -3).Format(utils.FormatDate)
  185. endDate := time.Now().Format(utils.FormatDate)
  186. var edbInfoIdBytes []string
  187. calculateMap, err := data_manage.GetEdbInfoCalculateDetail(int(v.EdbInfoId))
  188. if err != nil {
  189. return err
  190. }
  191. var formulaStr string
  192. edbInfoList := make([]*data_manage.EdbInfo, 0)
  193. for _, v := range calculateMap {
  194. formulaStr += v.FromTag + ","
  195. edbInfoIdBytes = append(edbInfoIdBytes, v.FromTag)
  196. edbInfo, _ := data_manage.GetEdbInfoById(v.FromEdbInfoId)
  197. edbInfoList = append(edbInfoList, edbInfo)
  198. }
  199. err = RefreshCalculate(edbInfoList, v.EdbInfoId, v.EdbCode, v.CalculateFormula, startDate, endDate, edbInfoIdBytes)
  200. if err != nil {
  201. return err
  202. }
  203. }
  204. return err
  205. }