base_from_coalmine.go 6.5 KB

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