base_from_coalmine.go 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. package models
  2. import (
  3. "eta/eta_index_lib/global"
  4. "time"
  5. )
  6. type BaseFromCoalmineMapping struct {
  7. BaseFromCoalmineMappingId int `gorm:"column:base_from_coalmine_mapping_id;primaryKey"`
  8. //BaseFromCoalmineMappingId int `orm:"column(base_from_coalmine_mapping_id);pk"`
  9. IndexName string `description:"持买单量指标名称"`
  10. IndexCode string `description:"持买单量指标编码"`
  11. CreateTime time.Time `description:"时间"`
  12. }
  13. type BaseFromCoalmineJsmIndex struct {
  14. BaseFromCoalmineJsmIndexId int `gorm:"column:base_from_coalmine_jsm_index_id;primaryKey"`
  15. //BaseFromCoalmineJsmIndexId int `orm:"column(base_from_coalmine_jsm_index_id);pk"`
  16. IndexName string `description:"持买单量指标名称"`
  17. IndexCode string `description:"持买单量指标编码"`
  18. Exchange string `description:"样本统计类别"`
  19. DealValue string `description:"成交量"`
  20. DataTime string `description:"数据日期"`
  21. Source string `description:"来源"`
  22. Province string `description:"省份"`
  23. Description string `description:"描述"`
  24. Unit string `description:"单位"`
  25. Frequency string `description:"频率"`
  26. CreateTime time.Time `description:"插入时间"`
  27. ModifyTime time.Time `description:"修改时间"`
  28. }
  29. type BaseFromCoalmineCompanyIndex struct {
  30. BaseFromCoalmineCompanyIndexId int `gorm:"column:base_from_coalmine_company_index_id;primaryKey"`
  31. //BaseFromCoalmineCompanyIndexId int `orm:"column(base_from_coalmine_company_index_id);pk"`
  32. IndexName string `description:"持买单量指标名称"`
  33. IndexCode string `description:"持买单量指标编码"`
  34. DealValue string `description:"成交量"`
  35. DataTime string `description:"数据日期"`
  36. Source string `description:"来源"`
  37. Province string `description:"省份"`
  38. City string `description:"城市"`
  39. GroupName string `description:"集团名称"`
  40. Unit string `description:"单位"`
  41. Frequency string `description:"频率"`
  42. CreateTime time.Time `description:"插入时间"`
  43. ModifyTime time.Time `description:"修改时间"`
  44. }
  45. // 添加指标
  46. func AddBaseFromCoalmineMapping(item *BaseFromCoalmineMapping) (lastId int64, err error) {
  47. //o := orm.NewOrm()
  48. //lastId, err = o.Insert(item)
  49. err = global.DEFAULT_DB.Create(&item).Error
  50. return
  51. }
  52. // 查询指标
  53. func GetBaseFromCoalmineMapping() (items []*BaseFromCoalmineMapping, err error) {
  54. //o := orm.NewOrm()
  55. sql := `SELECT * FROM base_from_coalmine_mapping`
  56. //_, err = o.Raw(sql).QueryRows(&items)
  57. err = global.DEFAULT_DB.Raw(sql).Find(&items).Error
  58. return
  59. }
  60. // 查询数据
  61. func GetBaseFromCoalmineIndex() (items []*BaseFromCoalmineJsmIndex, err error) {
  62. //o := orm.NewOrm()
  63. sql := `SELECT * FROM base_from_coalmine_jsm_index`
  64. err = global.DEFAULT_DB.Raw(sql).Find(&items).Error
  65. //_, err = o.Raw(sql).QueryRows(&items)
  66. return
  67. }
  68. func UpdateBaseFromCoalmineIndex(item *BaseFromCoalmineJsmIndex) (err error) {
  69. //o := orm.NewOrm()
  70. sql := `UPDATE base_from_coalmine_jsm_index SET deal_value=? WHERE index_name=? AND data_time = ?`
  71. //_, err = o.Raw(sql, item.DealValue, item.IndexName, item.DataTime).Exec()
  72. err = global.DEFAULT_DB.Exec(sql, item.DealValue, item.IndexName, item.DataTime).Error
  73. return
  74. }
  75. // 添加数据
  76. func AddBaseFromCoalmineIndex(item *BaseFromCoalmineJsmIndex) (lastId int64, err error) {
  77. //o := orm.NewOrm()
  78. //lastId, err = o.Insert(item)
  79. err = global.DEFAULT_DB.Create(&item).Error
  80. if err != nil {
  81. return
  82. }
  83. lastId = int64(item.BaseFromCoalmineJsmIndexId)
  84. return
  85. }
  86. // 添加公司指标
  87. func AddBaseFromCoalmineCompanyIndex(item *BaseFromCoalmineCompanyIndex) (lastId int64, err error) {
  88. //o := orm.NewOrm()
  89. //lastId, err = o.Insert(item)
  90. err = global.DEFAULT_DB.Create(&item).Error
  91. if err != nil {
  92. return
  93. }
  94. lastId = int64(item.BaseFromCoalmineCompanyIndexId)
  95. return
  96. }
  97. // 查询公司指标
  98. func GetBaseFromCoalmineCompanyIndex() (items []*BaseFromCoalmineCompanyIndex, err error) {
  99. //o := orm.NewOrm()
  100. sql := `SELECT * FROM base_from_coalmine_company_index`
  101. //_, err = o.Raw(sql).QueryRows(&items)
  102. err = global.DEFAULT_DB.Raw(sql).Find(&items).Error
  103. return
  104. }
  105. func UpdateBaseFromCoalmineCompanyIndex(item *BaseFromCoalmineCompanyIndex) (err error) {
  106. //o := orm.NewOrm()
  107. sql := `UPDATE base_from_coalmine_company_index SET deal_value=? WHERE index_name=? AND data_time = ?`
  108. err = global.DEFAULT_DB.Exec(sql, item.DealValue, item.IndexName, item.DataTime).Error
  109. //_, err = o.Raw(sql, item.DealValue, item.IndexName, item.DataTime).Exec()
  110. return
  111. }
  112. func (m *BaseFromCoalmineMapping) GetMaxAndMinDateByIndexCode(indexCode string) (item *EdbInfoMaxAndMinInfo, err error) {
  113. //o := orm.NewOrm()
  114. sql := ` SELECT MIN(data_time) AS min_date,MAX(data_time) AS max_date,MIN(value) AS min_value,MAX(value) AS max_value FROM base_from_sci99_data WHERE index_code=? `
  115. err = global.DEFAULT_DB.Raw(sql, indexCode).First(&item).Error
  116. //err = o.Raw(sql, indexCode).QueryRow(&item)
  117. if err != nil {
  118. return
  119. }
  120. // 获取最新值
  121. var latest_value float64
  122. sql = ` SELECT value AS latest_value FROM base_from_sci99_data WHERE index_code=? ORDER BY data_time DESC LIMIT 1 `
  123. //err = o.Raw(sql, indexCode).QueryRow(&latest_value)
  124. err = global.DEFAULT_DB.Raw(sql, indexCode).Scan(&latest_value).Error
  125. if err != nil {
  126. return
  127. }
  128. item.LatestValue = latest_value
  129. return
  130. }
  131. func (m *BaseFromCoalmineMapping) ModifyIndexMaxAndMinDate(indexCode string, item *EdbInfoMaxAndMinInfo) (err error) {
  132. //o := orm.NewOrm()
  133. sql := ` UPDATE base_from_sci99_index SET start_date=?,end_date=?,latest_value=?,modify_time=NOW() WHERE index_code=? `
  134. err = global.DEFAULT_DB.Exec(sql, item.MinDate, item.MaxDate, item.LatestValue, indexCode).Error
  135. //_, err = o.Raw(sql, item.MinDate, item.MaxDate, item.LatestValue, indexCode).Exec()
  136. return
  137. }
  138. type CoalMineDataReq struct {
  139. SheetData []SheetData
  140. }
  141. type SheetData struct {
  142. Name string
  143. Rows []Row
  144. Cols []*Col
  145. MaxRow int
  146. MaxCol int
  147. Hidden bool
  148. Selected bool
  149. }
  150. type Row struct {
  151. Cells []Cell
  152. Hidden bool
  153. Height float64
  154. OutlineLevel uint8
  155. isCustom bool
  156. }
  157. type Col struct {
  158. Min int
  159. Max int
  160. Hidden bool
  161. Width float64
  162. Collapsed bool
  163. OutlineLevel uint8
  164. numFmt string
  165. }
  166. type Cell struct {
  167. Value string
  168. }