index.go 4.2 KB

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