base_from_coalmine.go 7.0 KB

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