| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- package model
- import (
- "fmt"
- "sparrow/pkg/models"
- "github.com/jinzhu/gorm"
- )
- // SceneHis model
- type SceneHis struct {
- db *gorm.DB
- }
- // Init init SceneHis
- func (a *SceneHis) Init(db *gorm.DB) *SceneHis {
- a.db = db
- return a
- }
- // Query 分页查询场景执行历史
- // sceneId: 按场景ID筛选
- func (a *SceneHis) Query(pi, ps int, sceneId string) (datas []models.SceneHis, total int, err error) {
- tx := a.db.Where("1=1")
- if sceneId != "" {
- tx = tx.Where("scene_id = ?", sceneId)
- }
- tx = tx.Order("id desc")
- err = tx.Limit(ps).Offset((pi - 1) * ps).Find(&datas).Error
- err = tx.Model(&models.SceneHis{}).Count(&total).Error
- return
- }
- // GetBySceneId 根据场景ID获取历史记录列表
- func (a *SceneHis) GetBySceneId(sceneId string) (datas []models.SceneHis, err error) {
- err = a.db.Where("scene_id = ?", sceneId).Order("id desc").Find(&datas).Error
- return
- }
- // Get 获取单条数据内容
- func (a *SceneHis) Get(recordId string) (data models.SceneHis, err error) {
- cache := getCache()
- key := fmt.Sprintf("SceneHisId:%s", recordId)
- if v, ok := cache.Get(key); ok {
- _d := v.(*models.SceneHis)
- data = *_d
- } else {
- err = a.db.Where("record_id = ?", recordId).First(&data).Error
- if err == nil {
- cache.Set(key, &data)
- }
- }
- return
- }
- // Create 创建场景执行历史记录
- func (a *SceneHis) Create(sceneHis *models.SceneHis) error {
- return a.db.Save(sceneHis).Error
- }
- // Delete delete
- func (a *SceneHis) Delete(sceneHis *models.SceneHis) error {
- cache := getCache()
- key := fmt.Sprintf("SceneHis:%d", sceneHis.ID)
- if _, ok := cache.Get(key); ok {
- cache.Delete(key)
- }
- return a.db.Delete(sceneHis).Error
- }
- // Update update
- func (a *SceneHis) Update(sceneHis *models.SceneHis) (data models.SceneHis, err error) {
- cache := getCache()
- key := fmt.Sprintf("SceneHis:%d", sceneHis.ID)
- if _, ok := cache.Get(key); ok {
- cache.Delete(key)
- }
- err = a.db.Model(&data).Update(sceneHis).Error
- return
- }
|