package model import ( "fmt" "github.com/fonchain_enterprise/fonchain-approval/api/approval" "gorm.io/plugin/soft_delete" "time" ) // Work 画作申请审批 type Work struct { ID uint64 `gorm:"column:id" json:"id"` DeletedAt soft_delete.DeletedAt `gorm:"column:deleted_at" json:"deletedAt"` // 删除时间 CreatedAt time.Time `gorm:"column:created_at" json:"createdAt"` // 创建时间 UpdatedAt time.Time `gorm:"column:updated_at" json:"updatedAt"` // 更新时间 ReturnAt string `gorm:"column:return_at" json:"returnAt"` // 送还时间 ReceivedAt string `gorm:"column:received_at" json:"receivedAt"` // 领取时间 ApprovalID uint64 `gorm:"column:approval_id" json:"approvalId"` // 关联申请的ID ApprovalWorks []*ApprovalWork `gorm:"foreignKey:WorkId" json:"ApprovalWorks"` //type:string comment:备注 version:2022-06-12 15:10 } // TableName get sql table name.获取数据库表名 func (m *Work) TableName() string { return "work" } func (m *Work) SaveApprovalContent(in *approval.ApprovalRequest, a *Approval) error { //主体保存 m.ApprovalID = a.ApproverID m.ReturnAt = in.Work.ReturnAt m.ReceivedAt = in.Work.ReceivedAt err := DB.Create(m).Error if err != nil { return err } //绑定画作保存 var approvalWorks []ApprovalWork for _, approvalWork := range in.Work.ApprovalWorks { fmt.Println(approvalWork) temp := ApprovalWork{ ApprovalID: a.ID, WorkID: m.ID, ArtworkID: approvalWork.ArtworkId, ArtworkName: approvalWork.ArtworkName, ArtistName: approvalWork.ArtistName, ArtworkCover: approvalWork.ArtworkCover, ArtworkNumber: approvalWork.ArtworkNumber, } approvalWorks = append(approvalWorks, temp) } if len(approvalWorks) > 0 { err = DB.Create(&approvalWorks).Error } return err } func (m *Work) BuildResContent(a *Approval, request *approval.ApprovalRequest) { //ApprovalWorks []*ApprovalWork `protobuf:"bytes,4,rep,name=ApprovalWorks,json=approvalWorks,proto3" json:"ApprovalWorks,omitempty"` var approvalWorks []*approval.ApprovalWork for _, one := range m.ApprovalWorks { temp := &approval.ApprovalWork{ ID: one.ID, WorkId: one.WorkID, ApprovalID: one.ApprovalID, ArtworkId: one.ArtworkID, ArtworkName: one.ArtworkName, ArtistName: one.ArtistName, ArtworkCover: one.ArtworkCover, ArtworkNumber: one.ArtworkNumber, } approvalWorks = append(approvalWorks, temp) } request.Work = &approval.Work{ ID: m.ID, ReturnAt: m.ReturnAt, ReceivedAt: m.ReceivedAt, ApprovalWorks: approvalWorks, } } func (m *Work) DeleteApproval(p *Approval) error { var err error if err = DB.Where(&ApprovalWork{ApprovalID: p.ID}). Delete(&ApprovalWork{}).Error; err != nil { return err } return DB.Where(&Work{ApprovalID: p.ID}).Delete(&Work{}).Error } // WorkColumns get sql column name.获取数据库列名 var WorkColumns = struct { ID string DeletedAt string CreatedAt string UpdatedAt string ReturnAt string ReceivedAt string }{ ID: "id", DeletedAt: "deleted_at", CreatedAt: "created_at", UpdatedAt: "updated_at", ReturnAt: "return_at", ReceivedAt: "received_at", }