48 lines
1.2 KiB
Go
48 lines
1.2 KiB
Go
package version_local
|
|
|
|
import (
|
|
"runtime"
|
|
|
|
"go-admin/app/goauto/migrations"
|
|
"go-admin/app/goauto/models"
|
|
"go-admin/app/goauto/purchasecontract"
|
|
"go-admin/cmd/migrate/migration"
|
|
common "go-admin/common/models"
|
|
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
func init() {
|
|
_, fileName, _, _ := runtime.Caller(0)
|
|
migration.Migrate.SetVersion(migration.GetFilename(fileName), migratePurchaseRules)
|
|
}
|
|
|
|
func migratePurchaseRules(db *gorm.DB, version string) error {
|
|
return db.Transaction(func(tx *gorm.DB) error {
|
|
if err := migrations.Migrate(tx); err != nil {
|
|
return err
|
|
}
|
|
var setting models.PurchaseRuleSetting
|
|
if err := tx.First(&setting, 1).Error; err != nil {
|
|
if err != gorm.ErrRecordNotFound {
|
|
return err
|
|
}
|
|
record := models.PurchaseRule{Name: "默认 PDD 正式采购规则", ContentJSON: string(purchasecontract.DefaultLiveRule())}
|
|
if err := tx.Create(&record).Error; err != nil {
|
|
return err
|
|
}
|
|
setting = models.PurchaseRuleSetting{ID: 1, RuleID: record.ID}
|
|
if err := tx.Create(&setting).Error; err != nil {
|
|
return err
|
|
}
|
|
}
|
|
if err := ensureGoAutoMenusAndPurchaserBindings(tx); err != nil {
|
|
return err
|
|
}
|
|
if err := ensureGoAutoMenuGroups(tx); err != nil {
|
|
return err
|
|
}
|
|
return tx.Create(&common.Migration{Version: version}).Error
|
|
})
|
|
}
|