105 lines
2.1 KiB
Go
105 lines
2.1 KiB
Go
package model
|
|
|
|
import (
|
|
"fmt"
|
|
)
|
|
|
|
//类型迁移
|
|
func migration() {
|
|
//自动迁移模式
|
|
addTable(&ApprovalTypeGroup{})
|
|
addTable(&BundlePayPrice{})
|
|
addTable(&ApprovalCopy{})
|
|
addTable(&ExhibitionReward{})
|
|
addTable(&ApprovalReward{})
|
|
|
|
addTable(&FinancialFormSetting{}) // 财务报表审批 设置信息
|
|
addTable(&FinancialForm{}) // 财务报表审批 设置信息
|
|
|
|
//增加字段
|
|
addColumn(&ApprovalType{}, "is_normal")
|
|
addColumn(&ApprovalType{}, "key_json")
|
|
addColumn(&ApprovalType{}, "group_id")
|
|
|
|
addColumn(&Exhibition{}, "apply_id")
|
|
addColumn(&ApprovalExhibition{}, "package_id")
|
|
addColumn(&ApprovalExhibition{}, "show_date")
|
|
|
|
addColumn(&ApprovalWork{}, "artist_uid")
|
|
addColumn(&ApprovalWork{}, "show_seq")
|
|
|
|
addColumn(&Work{}, "artist_uid")
|
|
|
|
addColumn(&Approval{}, "value_json")
|
|
addColumn(&BundlePayPrice{}, "status")
|
|
addColumn(&BundlePayPrice{}, "artist_name")
|
|
addColumn(&BundlePayPrice{}, "rollback")
|
|
addColumn(&BundlePayPrice{}, "operation_times")
|
|
|
|
addColumn(&ApprovalExhibition{}, "art_exhibition_detail")
|
|
addColumn(&ApprovalExhibition{}, "artworks")
|
|
|
|
addColumn(&ApprovalReward{}, "total_price")
|
|
|
|
var num int64
|
|
var list []*Approval
|
|
DB.Model(&ApprovalCopy{}).Count(&num)
|
|
if num > 0 {
|
|
return
|
|
}
|
|
|
|
//同步更新数据
|
|
DB.Model(&Approval{}).Find(&list)
|
|
|
|
if len(list) == 0 {
|
|
return
|
|
}
|
|
|
|
for _, t := range list {
|
|
for _, tt := range t.CopyUsers {
|
|
status := 1
|
|
if tt.IsViewed == true {
|
|
status = 2
|
|
}
|
|
|
|
temp := &ApprovalCopy{
|
|
ApprovalID: t.ID,
|
|
UserId: tt.ID,
|
|
Name: tt.Name,
|
|
Status: uint64(status),
|
|
}
|
|
var n int64
|
|
DB.Model(&ApprovalCopy{}).Where(temp).Count(&n)
|
|
if n > 0 {
|
|
continue
|
|
}
|
|
|
|
DB.Model(&ApprovalCopy{}).Create(&temp)
|
|
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
//数据迁移
|
|
func addColumn(dst interface{}, column string) {
|
|
exist := DB.Migrator().HasColumn(dst, column)
|
|
if !exist {
|
|
err := DB.Migrator().AddColumn(dst, column)
|
|
if err != nil {
|
|
fmt.Println(err.Error())
|
|
}
|
|
}
|
|
|
|
return
|
|
}
|
|
|
|
func addTable(dst interface{}) {
|
|
|
|
if DB.Migrator().HasTable(dst) == false {
|
|
_ = DB.Migrator().CreateTable(dst)
|
|
}
|
|
|
|
return
|
|
}
|