index.go 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  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. base.TimeBase
  28. }
  29. // TableName get sql table name.获取数据库表名
  30. func (r *BaseFromMysteelChemicalIndex) TableName() string {
  31. return "base_from_mysteel_chemical_index"
  32. }
  33. // 新增
  34. func (r *BaseFromMysteelChemicalIndex) Add(runMod string) (err error) {
  35. if runMod == "release" {
  36. err = global.MYSQL["hzdata"].Create(r).Error
  37. return
  38. } else {
  39. err = global.DEFAULT_MYSQL.Create(r).Error
  40. return
  41. }
  42. }
  43. // 修改
  44. func (r *BaseFromMysteelChemicalIndex) Update(runMod string, updateCols []string) (err error) {
  45. if runMod == "release" {
  46. err = global.MYSQL["hzdata"].Model(r).Where("index_code=?", r.IndexCode).Select(updateCols).Updates(r).Error
  47. return
  48. } else {
  49. err = global.DEFAULT_MYSQL.Model(r).Where("index_code=?", r.IndexCode).Select(updateCols).Updates(r).Error
  50. return
  51. }
  52. }
  53. type IndexAddReq struct {
  54. IndexCode string `json:"IndexCode" binding:"required"` //指标编码
  55. UpdateWeek string `json:"UpdateWeek"` //更新周期
  56. RunMode string `description:"运行环境:debug:测试(默认),release:生产" json:"RunMode"` //更新周期
  57. }
  58. func (d *BaseFromMysteelChemicalIndex) GetIndexItem(runMod, indexCode string) (item *BaseFromMysteelChemicalIndex, err error) {
  59. if runMod == "release" {
  60. err = global.MYSQL["hzdata"].WithContext(context.TODO()).Model(d).
  61. Where("index_code = ?", indexCode).First(&item).Error
  62. return
  63. } else {
  64. err = global.DEFAULT_MYSQL.WithContext(context.TODO()).Model(d).
  65. Where("index_code = ?", indexCode).First(&item).Error
  66. return
  67. }
  68. }
  69. type IndexDeleteReq struct {
  70. IndexCode string `json:"IndexCode" binding:"required"` //指标编码
  71. }
  72. func (d *BaseFromMysteelChemicalIndex) GetIndexCreate() (item []*BaseFromMysteelChemicalIndex, err error) {
  73. endTime := time.Now().Add(-2 * time.Minute).Format(utils.FormatDateTime)
  74. err = global.MYSQL["hzdata"].WithContext(context.TODO()).Model(d).
  75. Where("index_name = '' AND create_time<=? ", endTime).First(&item).Error
  76. //Where("index_name = '' AND create_time<=? ", endTime).Find(&item).Error
  77. return
  78. }
  79. func (d *BaseFromMysteelChemicalIndex) GetIndexRefreshAll() (item []*BaseFromMysteelChemicalIndex, err error) {
  80. err = global.MYSQL["hzdata"].WithContext(context.TODO()).Model(d).Find(&item).Error
  81. return
  82. }
  83. func (d *BaseFromMysteelChemicalIndex) GetIndexRefreshWeek(nowWeekZn, startTime, endTime string) (item []*BaseFromMysteelChemicalIndex, err error) {
  84. where := `update_week = ? AND ((update_time >=? AND update_time<=?) OR (update_time2 >=? AND update_time2<=?)) `
  85. err = global.MYSQL["hzdata"].WithContext(context.TODO()).Model(d).Where(where, nowWeekZn, startTime, endTime, startTime, endTime).Find(&item).Error
  86. //err = global.DEFAULT_MYSQL.WithContext(context.TODO()).Model(d).Where(where, nowWeekZn, startTime, endTime, startTime, endTime).Find(&item).Error
  87. return
  88. }
  89. func (d *BaseFromMysteelChemicalIndex) GetIndexByFrequency(frequency string) (item []*BaseFromMysteelChemicalIndex, err error) {
  90. err = global.MYSQL["hzdata"].WithContext(context.TODO()).Model(d).Where("frequency=? AND merge_file_path='' ", frequency).Find(&item).Error
  91. return
  92. }