base_from_coalmine.go 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. package models
  2. import (
  3. sql2 "database/sql"
  4. "eta/eta_index_lib/global"
  5. "eta/eta_index_lib/utils"
  6. "gorm.io/gorm"
  7. "time"
  8. )
  9. type BaseFromCoalmineMapping struct {
  10. BaseFromCoalmineMappingId int `gorm:"column:base_from_coalmine_mapping_id;primaryKey"`
  11. //BaseFromCoalmineMappingId int `orm:"column(base_from_coalmine_mapping_id);pk"`
  12. IndexName string `description:"持买单量指标名称"`
  13. IndexCode string `description:"持买单量指标编码"`
  14. CreateTime time.Time `description:"时间"`
  15. }
  16. type BaseFromCoalmineJsmIndex struct {
  17. BaseFromCoalmineJsmIndexId int `gorm:"column:base_from_coalmine_jsm_index_id;primaryKey"`
  18. //BaseFromCoalmineJsmIndexId int `orm:"column(base_from_coalmine_jsm_index_id);pk"`
  19. IndexName string `description:"持买单量指标名称"`
  20. IndexCode string `description:"持买单量指标编码"`
  21. Exchange string `description:"样本统计类别"`
  22. DealValue string `description:"成交量"`
  23. DataTime string `description:"数据日期"`
  24. Source string `description:"来源"`
  25. Province string `description:"省份"`
  26. Description string `description:"描述"`
  27. Unit string `description:"单位"`
  28. Frequency string `description:"频率"`
  29. CreateTime time.Time `description:"插入时间"`
  30. ModifyTime time.Time `description:"修改时间"`
  31. }
  32. func (e *BaseFromCoalmineJsmIndex) AfterFind(db *gorm.DB) (err error) {
  33. e.DataTime = utils.GormDateStrToDateStr(e.DataTime)
  34. return
  35. }
  36. type BaseFromCoalmineCompanyIndex struct {
  37. BaseFromCoalmineCompanyIndexId int `gorm:"column:base_from_coalmine_company_index_id;primaryKey"`
  38. //BaseFromCoalmineCompanyIndexId int `orm:"column(base_from_coalmine_company_index_id);pk"`
  39. IndexName string `description:"持买单量指标名称"`
  40. IndexCode string `description:"持买单量指标编码"`
  41. DealValue string `description:"成交量"`
  42. DataTime string `description:"数据日期"`
  43. Source string `description:"来源"`
  44. Province string `description:"省份"`
  45. City string `description:"城市"`
  46. GroupName string `description:"集团名称"`
  47. Unit string `description:"单位"`
  48. Frequency string `description:"频率"`
  49. CreateTime time.Time `description:"插入时间"`
  50. ModifyTime time.Time `description:"修改时间"`
  51. }
  52. func (e *BaseFromCoalmineCompanyIndex) AfterFind(db *gorm.DB) (err error) {
  53. e.DataTime = utils.GormDateStrToDateStr(e.DataTime)
  54. return
  55. }
  56. // 添加指标
  57. func AddBaseFromCoalmineMapping(item *BaseFromCoalmineMapping) (lastId int64, err error) {
  58. //o := orm.NewOrm()
  59. //lastId, err = o.Insert(item)
  60. err = global.DEFAULT_DB.Create(&item).Error
  61. return
  62. }
  63. // 查询指标
  64. func GetBaseFromCoalmineMapping() (items []*BaseFromCoalmineMapping, err error) {
  65. //o := orm.NewOrm()
  66. sql := `SELECT * FROM base_from_coalmine_mapping`
  67. //_, err = o.Raw(sql).QueryRows(&items)
  68. err = global.DEFAULT_DB.Raw(sql).Find(&items).Error
  69. return
  70. }
  71. // 查询数据
  72. func GetBaseFromCoalmineIndex() (items []*BaseFromCoalmineJsmIndex, err error) {
  73. //o := orm.NewOrm()
  74. sql := `SELECT * FROM base_from_coalmine_jsm_index`
  75. err = global.DEFAULT_DB.Raw(sql).Find(&items).Error
  76. //_, err = o.Raw(sql).QueryRows(&items)
  77. return
  78. }
  79. func UpdateBaseFromCoalmineIndex(item *BaseFromCoalmineJsmIndex) (err error) {
  80. //o := orm.NewOrm()
  81. sql := `UPDATE base_from_coalmine_jsm_index SET deal_value=? WHERE index_name=? AND data_time = ?`
  82. //_, err = o.Raw(sql, item.DealValue, item.IndexName, item.DataTime).Exec()
  83. err = global.DEFAULT_DB.Exec(sql, item.DealValue, item.IndexName, item.DataTime).Error
  84. return
  85. }
  86. // 添加数据
  87. func AddBaseFromCoalmineIndex(item *BaseFromCoalmineJsmIndex) (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.BaseFromCoalmineJsmIndexId)
  95. return
  96. }
  97. // 添加公司指标
  98. func AddBaseFromCoalmineCompanyIndex(item *BaseFromCoalmineCompanyIndex) (lastId int64, err error) {
  99. //o := orm.NewOrm()
  100. //lastId, err = o.Insert(item)
  101. err = global.DEFAULT_DB.Create(&item).Error
  102. if err != nil {
  103. return
  104. }
  105. lastId = int64(item.BaseFromCoalmineCompanyIndexId)
  106. return
  107. }
  108. // 查询公司指标
  109. func GetBaseFromCoalmineCompanyIndex() (items []*BaseFromCoalmineCompanyIndex, err error) {
  110. //o := orm.NewOrm()
  111. sql := `SELECT * FROM base_from_coalmine_company_index`
  112. //_, err = o.Raw(sql).QueryRows(&items)
  113. err = global.DEFAULT_DB.Raw(sql).Find(&items).Error
  114. return
  115. }
  116. func UpdateBaseFromCoalmineCompanyIndex(item *BaseFromCoalmineCompanyIndex) (err error) {
  117. //o := orm.NewOrm()
  118. sql := `UPDATE base_from_coalmine_company_index SET deal_value=? WHERE index_name=? AND data_time = ?`
  119. err = global.DEFAULT_DB.Exec(sql, item.DealValue, item.IndexName, item.DataTime).Error
  120. //_, err = o.Raw(sql, item.DealValue, item.IndexName, item.DataTime).Exec()
  121. return
  122. }
  123. func (m *BaseFromCoalmineMapping) GetMaxAndMinDateByIndexCode(indexCode string) (item *EdbInfoMaxAndMinInfo, err error) {
  124. //o := orm.NewOrm()
  125. 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=? `
  126. err = global.DEFAULT_DB.Raw(sql, indexCode).First(&item).Error
  127. //err = o.Raw(sql, indexCode).QueryRow(&item)
  128. if err != nil {
  129. return
  130. }
  131. // 获取最新值
  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. var latestValueNull sql2.NullFloat64
  135. err = global.DEFAULT_DB.Raw(sql, indexCode).Scan(&latestValueNull).Error
  136. if err == nil && latestValueNull.Valid {
  137. item.LatestValue = latestValueNull.Float64
  138. }
  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. }