zhangzengfei
2024-06-06 0b932b8af021e1f97a27c85d823f828fbf854a39
models/cache.go
@@ -2,6 +2,7 @@
type Cache struct {
   Id         uint   `gorm:"column:id;primary_key;auto_increment;unique;not null;"`
   Type       string `gorm:"column:type;"` // 消息类型 1400, basic
   Data       string `gorm:"column:data;type:text"`
   CreateTime int64  `gorm:"column:create_time;"`
   Retry      int    `gorm:"column:retry;"`
@@ -9,6 +10,10 @@
func (c *Cache) TableName() string {
   return "caches"
}
func (c *Cache) First() error {
   return db.Table(c.TableName()).First(c).Error
}
func (c *Cache) FindAll() ([]Cache, error) {
@@ -20,10 +25,28 @@
   return caches, nil
}
func (c *Cache) Update() error {
   return db.Table(c.TableName()).Save(&c).Error
func (c *Cache) Count() (int64, error) {
   var total int64
   if err := db.Table(c.TableName()).Count(&total).Error; err != nil {
      return total, err
   }
   return total, nil
}
func (c *Cache) Save() error {
   return db.Table(c.TableName()).Save(c).Error
}
func (c *Cache) UpdateRetryCount() error {
   return db.Table(c.TableName()).Where("id = ?", c.Id).Update("retry", c.Retry+1).Error
}
func (c *Cache) Delete() error {
   return db.Table(c.TableName()).Delete("id = ?", c.Id).Error
   return db.Table(c.TableName()).Where("id = ?", c.Id).Delete(c).Error
}
func (c *Cache) Clean() error {
   sql := "DELETE FROM caches WHERE id NOT IN (SELECT id FROM caches ORDER BY id DESC LIMIT 15000);"
   return db.Table(c.TableName()).Exec(sql).Error
}