1234567891011121314151617181920212223242526272829303132333435363738 |
- package config
- import (
- "eta/eta_mini_ht_api/models"
- "gorm.io/gorm"
- "gorm.io/gorm/clause"
- "time"
- )
- // Permission 定义权限表的结构
- type Permission struct {
- Id int `gorm:"primaryKey;autoIncrement"`
- PermissionId int `gorm:"type:int"`
- Name string `gorm:"type:varchar(255)"`
- ParentId int `gorm:"default:null"`
- RiskLevel string `gorm:"type:varchar(10)"`
- Sort int `gorm:"default:null"`
- CreateTime time.Time `gorm:"default:null"`
- UpdateTime time.Time `gorm:"default:null;onUpdate:CURRENT_TIMESTAMP"`
- }
- // BeforeCreate 钩子用于在创建记录前设置 CreateTime
- func (p *Permission) BeforeCreate(tx *gorm.DB) (err error) {
- p.CreateTime = time.Now()
- return
- }
- func BatchInsertOrUpdate(list []Permission) (err error) {
- db := models.Main()
- OnConflictFunc := clause.OnConflict{
- Columns: []clause.Column{{Name: "permission_id"}},
- DoUpdates: clause.AssignmentColumns([]string{"name", "status", "deleted"}),
- }
- // 执行批量插入或更新操作
- err = db.Clauses(OnConflictFunc).Create(&list).Error
- return
- }
|