edb_data_dl.go 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. package data_manage
  2. //type DlData struct {
  3. // InputValue string `orm:"column(DATA_VALUE)" description:"日期"`
  4. // DataTime string `orm:"column(DATA_DATE)" description:"值"`
  5. //}
  6. //type BaseFromDlDataSimple struct {
  7. // Id int `orm:"column(base_from_trade_dalian_index_id);pk" gorm:"primaryKey"`
  8. // DealCode string
  9. // BuyCode string
  10. // SoldCode string
  11. // DataTime string
  12. // DealValue string
  13. // BuyValue string
  14. // SoldValue string
  15. //}
  16. //type BaseInfoFromDl struct {
  17. // DealName string
  18. // BuyName string
  19. // SoldName string
  20. //}
  21. //func GetEdbDataDlMaxOrMinDate(edbCode string) (minDate, maxDate string, err error) {
  22. // o := global.DbMap[utils.DbNameIndex]
  23. // sql := ` SELECT MIN(data_time) AS minDate,MAX(data_time) AS maxDate FROM edb_data_dl WHERE edb_code=? `
  24. // err = o.Raw(sql, edbCode).Row().Scan(&minDate, &maxDate)
  25. // return
  26. //}
  27. // RefreshEdbDataByDl 刷新大商所指标数据
  28. //func RefreshEdbDataByDl(edbInfoId int, edbCode, startDate, endDate string) (err error) {
  29. // o := global.DbMap[utils.DbNameIndex]
  30. // tx := o.Begin()
  31. // if tx.Error != nil {
  32. // return tx.Error
  33. // }
  34. // defer func() {
  35. // if err != nil {
  36. // tx.Rollback()
  37. // } else {
  38. // tx.Commit()
  39. // }
  40. // }()
  41. // if err != nil {
  42. // return
  43. // }
  44. // var suffix string
  45. // if strings.Contains(edbCode, "deal") {
  46. // suffix = "deal"
  47. // } else if strings.Contains(edbCode, "buy") {
  48. // suffix = "buy"
  49. // } else if strings.Contains(edbCode, "sold") {
  50. // suffix = "sold"
  51. // }
  52. // edbInfoIdStr := strconv.Itoa(edbInfoId)
  53. // //计算数据
  54. // var condition string
  55. // var pars []interface{}
  56. //
  57. // if edbCode != "" {
  58. // if suffix == "deal" {
  59. // condition += " AND deal_code=? "
  60. // } else if suffix == "buy" {
  61. // condition += " AND buy_code=? "
  62. // } else {
  63. // condition += " AND sold_code=? "
  64. // }
  65. // pars = append(pars, edbCode)
  66. // }
  67. //
  68. // if startDate != "" {
  69. // condition += " AND data_time>=? "
  70. // pars = append(pars, startDate)
  71. // }
  72. //
  73. // if endDate != "" {
  74. // condition += " AND data_time<=? "
  75. // pars = append(pars, endDate)
  76. // }
  77. //
  78. // glDataList, err := GetDlDataByTradeCode(condition, pars)
  79. //
  80. // addSql := ` INSERT INTO edb_data_dl(edb_info_id,edb_code,data_time,value,create_time,modify_time,status,data_timestamp) values `
  81. // var isAdd bool
  82. // existMap := make(map[string]string)
  83. // for _, v := range glDataList {
  84. // var value string
  85. // if suffix == "deal" {
  86. // value = v.DealValue
  87. // } else if suffix == "buy" {
  88. // value = v.BuyValue
  89. // } else {
  90. // value = v.SoldValue
  91. // }
  92. // item := v
  93. // itemValue := value
  94. // if _, ok := existMap[v.DataTime]; !ok {
  95. // count, err := GetEdbDataDlByCodeAndDate(edbCode, v.DataTime)
  96. // if err != nil {
  97. // return err
  98. // }
  99. // if count <= 0 {
  100. // eDate := item.DataTime
  101. // sValue := itemValue
  102. // if sValue != "" {
  103. // dataTime, err := time.Parse(utils.FormatDate, eDate)
  104. // if err != nil {
  105. // return err
  106. // }
  107. // timestamp := dataTime.UnixNano() / 1e6
  108. // timeStr := fmt.Sprintf("%d", timestamp)
  109. // addSql += GetAddSql(edbInfoIdStr, edbCode, eDate, timeStr, sValue)
  110. // isAdd = true
  111. // }
  112. // } else {
  113. // err = ModifyEdbDataDl(int64(edbInfoId), v.DataTime, value)
  114. // if err != nil {
  115. // return err
  116. // }
  117. // }
  118. // }
  119. // existMap[v.DataTime] = value
  120. // }
  121. // if isAdd {
  122. // addSql = strings.TrimRight(addSql, ",")
  123. // err = tx.Exec(addSql, pars...).Error
  124. // if err != nil {
  125. // return err
  126. // }
  127. // }
  128. // return
  129. //}
  130. // GetBaseInfoFromDalianByIndexCode 获取指标信息
  131. //func GetBaseInfoFromDalianByIndexCode(indexCode, suffix string) (list []*BaseInfoFromDl, err error) {
  132. // o := global.DbMap[utils.DbNameIndex]
  133. // sql := `SELECT * FROM base_from_trade_dalian_index WHERE %s_code=? `
  134. // sql = fmt.Sprintf(sql, suffix)
  135. // err = o.Raw(sql, indexCode).Find(&list).Error
  136. // return
  137. //}
  138. //func GetDlDataByTradeCode(condition string, pars []interface{}) (item []*BaseFromDlDataSimple, err error) {
  139. // sql := ` SELECT * FROM base_from_trade_dalian_index WHERE 1=1 `
  140. // o := global.DbMap[utils.DbNameIndex]
  141. // if condition != "" {
  142. // sql += condition
  143. // }
  144. // sql += ` ORDER BY data_time DESC `
  145. // err = o.Raw(sql, pars).Find(&item).Error
  146. // return
  147. //}
  148. //func AddEdbDataDlBySql(sqlStr string) (err error) {
  149. // o := global.DbMap[utils.DbNameIndex]
  150. // err = o.Exec(sqlStr).Error
  151. // return
  152. //}
  153. //func GetBaseFromDalianDataAllByIndexCode(indexCode, suffix string) (list []*BaseFromTradeDalianIndex, err error) {
  154. // o := global.DbMap[utils.DbNameIndex]
  155. // sql := `SELECT * FROM base_from_trade_dalian_index WHERE %s_code=? `
  156. // sql = fmt.Sprintf(sql, suffix)
  157. // err = o.Raw(sql, indexCode).Find(&list).Error
  158. // return
  159. //}
  160. //func GetEdbDataDlByCodeAndDate(edbCode string, startDate string) (count int, err error) {
  161. // o := global.DbMap[utils.DbNameIndex]
  162. // sql := ` SELECT COUNT(1) AS count FROM edb_data_dl WHERE edb_code=? AND data_time=? `
  163. // err = o.Raw(sql, edbCode, startDate).Scan(&count).Error
  164. // return
  165. //}
  166. //func ModifyEdbDataDl(edbInfoId int64, dataTime, value string) (err error) {
  167. // o := global.DbMap[utils.DbNameIndex]
  168. // sql := ` UPDATE edb_data_dl SET value=?,modify_time=NOW() WHERE edb_info_id=? AND data_time=? `
  169. // err = o.Exec(sql, value, edbInfoId, dataTime).Error
  170. // return
  171. //}