rule_chain.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package model
  2. import (
  3. "fmt"
  4. "sparrow/pkg/models"
  5. "github.com/jinzhu/gorm"
  6. )
  7. // RuleChain model
  8. type RuleChain struct {
  9. db *gorm.DB
  10. }
  11. // Init init RuleChain
  12. func (a *RuleChain) Init(db *gorm.DB) *RuleChain {
  13. a.db = db
  14. return a
  15. }
  16. // Query query all roles
  17. func (a *RuleChain) Query(pi, ps int, name string) (datas []models.RuleChain, total int, err error) {
  18. tx := a.db.Where("1=1")
  19. if name != "" {
  20. tx = tx.Where("name like ?", "%"+name+"%")
  21. }
  22. err = tx.Limit(ps).Offset((pi - 1) * ps).Find(&datas).Error
  23. err = tx.Model(&models.RuleChain{}).Count(&total).Error
  24. return
  25. }
  26. // Get 获取数据内容
  27. func (a *RuleChain) Get(vendorId string, recordId string) (data models.RuleChain, err error) {
  28. cache := getCache()
  29. key := fmt.Sprintf("ChanId:%s", recordId)
  30. if v, ok := cache.Get(key); ok {
  31. _d := v.(*models.RuleChain)
  32. data = *_d
  33. } else {
  34. err = a.db.Where("vendor_id = ? and record_id = ?", vendorId, recordId).First(&data).Error
  35. if err == nil {
  36. cache.Set(key, &data)
  37. }
  38. }
  39. return
  40. }
  41. // Create 创建
  42. func (a *RuleChain) Create(ruleChain *models.RuleChain) error {
  43. return a.db.Save(ruleChain).Error
  44. }
  45. // Delete delete
  46. func (a *RuleChain) Delete(ruleChain *models.RuleChain) error {
  47. cache := getCache()
  48. key := fmt.Sprintf("RuleChain:%d", ruleChain.ID)
  49. if _, ok := cache.Get(key); ok {
  50. cache.Delete(key)
  51. }
  52. return a.db.Delete(ruleChain).Error
  53. }
  54. // Update update
  55. func (a *RuleChain) Update(ruleChain *models.RuleChain) error {
  56. return a.db.Save(ruleChain).Error
  57. }