mirror of
https://gitee.com/rainbond/Rainbond.git
synced 2024-12-05 05:07:38 +08:00
143 lines
3.8 KiB
Go
143 lines
3.8 KiB
Go
package dao
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/goodrain/rainbond/db/model"
|
|
"github.com/jinzhu/gorm"
|
|
"github.com/pkg/errors"
|
|
)
|
|
|
|
type AppDaoImpl struct {
|
|
DB *gorm.DB
|
|
}
|
|
|
|
func (a *AppDaoImpl) AddModel(mo model.Interface) error {
|
|
app, ok := mo.(*model.AppStatus)
|
|
if !ok {
|
|
return errors.New("Failed to convert interface to AppStatus")
|
|
}
|
|
|
|
var old model.AppStatus
|
|
if ok := a.DB.Where("event_id = ?", app.EventID).Find(&old).RecordNotFound(); ok {
|
|
if err := a.DB.Create(app).Error; err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func (a *AppDaoImpl) UpdateModel(mo model.Interface) error {
|
|
app, ok := mo.(*model.AppStatus)
|
|
if !ok {
|
|
return errors.New("Failed to convert interface to AppStatus")
|
|
}
|
|
|
|
return a.DB.Table(app.TableName()).
|
|
Where("event_id = ?", app.EventID).
|
|
Update(app).Error
|
|
}
|
|
|
|
func (a *AppDaoImpl) DeleteModelByEventId(eventID string) error {
|
|
var app model.AppStatus
|
|
if ok := a.DB.Where("event_id = ?", eventID).Find(&app).RecordNotFound(); ok {
|
|
return nil
|
|
}
|
|
|
|
return a.DB.Where("event_id = ?", eventID).Delete(&app).Error
|
|
}
|
|
|
|
func (a *AppDaoImpl) GetByEventId(eventID string) (*model.AppStatus, error) {
|
|
var app model.AppStatus
|
|
err := a.DB.Where("event_id = ?", eventID).First(&app).Error
|
|
|
|
return &app, err
|
|
}
|
|
|
|
//AppBackupDaoImpl group app backup info store mysql impl
|
|
type AppBackupDaoImpl struct {
|
|
DB *gorm.DB
|
|
}
|
|
|
|
//AddModel AddModel
|
|
func (a *AppBackupDaoImpl) AddModel(mo model.Interface) error {
|
|
app, ok := mo.(*model.AppBackup)
|
|
if !ok {
|
|
return errors.New("Failed to convert interface to AppStatus")
|
|
}
|
|
|
|
var old model.AppBackup
|
|
if ok := a.DB.Where("backup_id = ?", app.BackupID).Find(&old).RecordNotFound(); ok {
|
|
if err := a.DB.Create(app).Error; err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
return fmt.Errorf("backup info exist with id %s", app.BackupID)
|
|
}
|
|
|
|
//UpdateModel UpdateModel
|
|
func (a *AppBackupDaoImpl) UpdateModel(mo model.Interface) error {
|
|
app, ok := mo.(*model.AppBackup)
|
|
if !ok {
|
|
return errors.New("Failed to convert interface to AppStatus")
|
|
}
|
|
if app.ID == 0 {
|
|
return errors.New("Primary id can not be 0 when update")
|
|
}
|
|
return a.DB.Table(app.TableName()).Where("backup_id = ?", app.BackupID).Update(app).Error
|
|
}
|
|
|
|
//CheckHistory CheckHistory
|
|
func (a *AppBackupDaoImpl) CheckHistory(groupID, version string) bool {
|
|
var app model.AppBackup
|
|
exist := a.DB.Where("((group_id = ? and status in (?)) or version=?) and deleted=? ", groupID, []string{"starting", "restore"}, version, false).Find(&app).RecordNotFound()
|
|
return !exist
|
|
}
|
|
|
|
//GetAppBackups GetAppBackups
|
|
func (a *AppBackupDaoImpl) GetAppBackups(groupID string) ([]*model.AppBackup, error) {
|
|
var apps []*model.AppBackup
|
|
if err := a.DB.Where("group_id = ? and deleted=?", groupID, false).Find(&apps).Error; err != nil {
|
|
return nil, err
|
|
}
|
|
return apps, nil
|
|
}
|
|
|
|
//DeleteAppBackup DeleteAppBackup
|
|
func (a *AppBackupDaoImpl) DeleteAppBackup(backupID string) error {
|
|
var app model.AppBackup
|
|
if err := a.DB.Where("backup_id = ?", backupID).Delete(&app).Error; err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
//GetAppBackup GetAppBackup
|
|
func (a *AppBackupDaoImpl) GetAppBackup(backupID string) (*model.AppBackup, error) {
|
|
var app model.AppBackup
|
|
if err := a.DB.Where("backup_id = ? and deleted=?", backupID, false).Find(&app).Error; err != nil {
|
|
return nil, err
|
|
}
|
|
return &app, nil
|
|
}
|
|
|
|
//GetDeleteAppBackup GetDeleteAppBackup
|
|
func (a *AppBackupDaoImpl) GetDeleteAppBackup(backupID string) (*model.AppBackup, error) {
|
|
var app model.AppBackup
|
|
if err := a.DB.Where("backup_id = ? and deleted=?", backupID, true).Find(&app).Error; err != nil {
|
|
return nil, err
|
|
}
|
|
return &app, nil
|
|
}
|
|
|
|
//GetDeleteAppBackups GetDeleteAppBackups
|
|
func (a *AppBackupDaoImpl) GetDeleteAppBackups() ([]*model.AppBackup, error) {
|
|
var apps []*model.AppBackup
|
|
if err := a.DB.Where("deleted=?", true).Find(&apps).Error; err != nil {
|
|
return nil, err
|
|
}
|
|
return apps, nil
|
|
}
|