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 }) }