index.go 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. package index
  2. import (
  3. "context"
  4. "hongze/mysteel_watch/global"
  5. "hongze/mysteel_watch/models/base"
  6. "hongze/mysteel_watch/utils"
  7. "time"
  8. )
  9. // 钢联化工指标数据
  10. type BaseFromMysteelChemicalIndex struct {
  11. BaseFromMysteelChemicalIndexId int64 `gorm:"primaryKey;column:base_from_mysteel_chemical_index_id;type:int(11);not null" json:"base_from_mysteel_chemical_index_id"` //序号
  12. IndexCode string `gorm:"column:index_code" json:"index_code"`
  13. IndexName string `gorm:"column:index_name" json:"index_name"`
  14. Unit string `gorm:"column:unit" json:"unit"`
  15. Source string `gorm:"column:source" json:"source"`
  16. Frequency string `gorm:"column:frequency" json:"frequency"`
  17. StartDate time.Time `gorm:"column:start_date" json:"start_date"`
  18. EndDate time.Time `gorm:"column:end_date" json:"end_date"`
  19. Describe string `gorm:"column:describe" json:"describe"`
  20. UpdateWeek string `gorm:"column:update_week" json:"update_week"`
  21. UpdateTime string `gorm:"column:update_time" json:"update_time"`
  22. UpdateTime2 string `gorm:"column:update_time2" json:"update_time2"`
  23. SysUserId int `gorm:"column:sys_user_id" json:"sys_user_id"`
  24. SysUserRealName string `gorm:"column:sys_user_real_name" json:"sys_user_real_name"`
  25. FilePath string `gorm:"column:file_path" json:"file_path"`
  26. MergeFilePath string `gorm:"column:merge_file_path" json:"merge_file_path"`
  27. FileIndex int `gorm:"column:file_index" json:"file_index"`
  28. base.TimeBase
  29. }
  30. // TableName get sql table name.获取数据库表名
  31. func (r *BaseFromMysteelChemicalIndex) TableName() string {
  32. return "base_from_mysteel_chemical_index"
  33. }
  34. // 新增
  35. func (r *BaseFromMysteelChemicalIndex) Add(runMod string) (err error) {
  36. if runMod == "release" {
  37. err = global.MYSQL["hzdata"].Create(r).Error
  38. return
  39. } else {
  40. err = global.DEFAULT_MYSQL.Create(r).Error
  41. return
  42. }
  43. }
  44. // 修改
  45. func (r *BaseFromMysteelChemicalIndex) Update(runMod string, updateCols []string) (err error) {
  46. if runMod == "release" {
  47. err = global.MYSQL["hzdata"].Model(r).Where("index_code=?", r.IndexCode).Select(updateCols).Updates(r).Error
  48. return
  49. } else {
  50. err = global.DEFAULT_MYSQL.Model(r).Where("index_code=?", r.IndexCode).Select(updateCols).Updates(r).Error
  51. return
  52. }
  53. }
  54. type IndexAddReq struct {
  55. IndexCode string `json:"IndexCode" binding:"required"` //指标编码
  56. UpdateWeek string `json:"UpdateWeek"` //更新周期
  57. RunMode string `description:"运行环境:debug:测试(默认),release:生产" json:"RunMode"` //更新周期
  58. }
  59. func (d *BaseFromMysteelChemicalIndex) GetIndexItem(runMod, indexCode string) (item *BaseFromMysteelChemicalIndex, err error) {
  60. if runMod == "release" {
  61. err = global.MYSQL["hzdata"].WithContext(context.TODO()).Model(d).
  62. Where("index_code = ?", indexCode).First(&item).Error
  63. return
  64. } else {
  65. err = global.DEFAULT_MYSQL.WithContext(context.TODO()).Model(d).
  66. Where("index_code = ?", indexCode).First(&item).Error
  67. return
  68. }
  69. }
  70. type IndexDeleteReq struct {
  71. IndexCode string `json:"IndexCode" binding:"required"` //指标编码
  72. }
  73. func (d *BaseFromMysteelChemicalIndex) GetIndexCreate() (item []*BaseFromMysteelChemicalIndex, err error) {
  74. endTime := time.Now().Add(-2 * time.Minute).Format(utils.FormatDateTime)
  75. err = global.MYSQL["hzdata"].WithContext(context.TODO()).Model(d).
  76. Where("index_name = '' AND create_time<=? ", endTime).First(&item).Error
  77. //Where("index_name = '' AND create_time<=? ", endTime).Find(&item).Error
  78. return
  79. }
  80. func (d *BaseFromMysteelChemicalIndex) GetIndexRefreshAll() (item []*BaseFromMysteelChemicalIndex, err error) {
  81. err = global.MYSQL["hzdata"].WithContext(context.TODO()).Model(d).Find(&item).Error
  82. return
  83. }
  84. func (d *BaseFromMysteelChemicalIndex) GetIndexRefreshWeek(nowWeekZn, startTime, endTime string) (item []*BaseFromMysteelChemicalIndex, err error) {
  85. where := `update_week = ? AND ((update_time >=? AND update_time<=?) OR (update_time2 >=? AND update_time2<=?)) `
  86. err = global.MYSQL["hzdata"].WithContext(context.TODO()).Model(d).Where(where, nowWeekZn, startTime, endTime, startTime, endTime).Find(&item).Error
  87. //err = global.DEFAULT_MYSQL.WithContext(context.TODO()).Model(d).Where(where, nowWeekZn, startTime, endTime, startTime, endTime).Find(&item).Error
  88. return
  89. }
  90. func (d *BaseFromMysteelChemicalIndex) GetIndexByFrequency(frequency string) (item []*BaseFromMysteelChemicalIndex, err error) {
  91. err = global.MYSQL["hzdata"].WithContext(context.TODO()).Model(d).Where("frequency=? AND merge_file_path='' ", frequency).Find(&item).Error
  92. return
  93. }
  94. func (d *BaseFromMysteelChemicalIndex) GetIndexByFrequencyCount(frequency string) (total int64, err error) {
  95. err = global.MYSQL["hzdata"].WithContext(context.TODO()).Model(d).
  96. Where("frequency=? ", frequency).
  97. Count(&total).Error
  98. return
  99. }
  100. func (d *BaseFromMysteelChemicalIndex) GetIndexByFrequencyPage(frequency string, offset, limit int) (item []*BaseFromMysteelChemicalIndex, err error) {
  101. err = global.MYSQL["hzdata"].WithContext(context.TODO()).Model(d).
  102. Where("frequency=? ", frequency).
  103. Offset(offset).
  104. Limit(limit).
  105. Scan(&item).Error
  106. return
  107. }
  108. func (d *BaseFromMysteelChemicalIndex) GetIndexCountByMergeFilePath(mergeFilePath string) (total int64, err error) {
  109. err = global.MYSQL["hzdata"].WithContext(context.TODO()).Model(d).
  110. Where("merge_file_path=?", mergeFilePath).
  111. Count(&total).Error
  112. return
  113. }
  114. func (d *BaseFromMysteelChemicalIndex) GetIndexLatestMergeFilePath(frequency string) (item *BaseFromMysteelChemicalIndex, err error) {
  115. err = global.MYSQL["hzdata"].WithContext(context.TODO()).Model(d).
  116. Where("frequency=? AND merge_file_path<>'' ", frequency).
  117. Order("ORDER BY base_from_mysteel_chemical_index_id ASC").
  118. First(&item).Error
  119. return
  120. }
  121. func (d *BaseFromMysteelChemicalIndex) GetMaxFileIndex(frequency string) (item *BaseFromMysteelChemicalIndex, err error) {
  122. err = global.MYSQL["hzdata"].WithContext(context.TODO()).Model(d).
  123. Where("frequency=?", frequency).
  124. Order("file_index DESC").
  125. First(&item).Error
  126. return
  127. }