You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

103 lines
2.0 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(&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
}