105 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			105 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{})        // 财务报表审批
 | |
| 
 | |
| 	addTable(&ApprovalOA{}) // OA
 | |
| 
 | |
| 	//增加字段
 | |
| 	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
 | |
| }
 |