106 lines
3.2 KiB
Go
106 lines
3.2 KiB
Go
|
package model
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"github.com/fonchain_enterprise/fonchain-approval/api/approval"
|
||
|
"gorm.io/plugin/soft_delete"
|
||
|
"time"
|
||
|
)
|
||
|
|
||
|
// Exhibition 审批-画展包
|
||
|
type Exhibition struct {
|
||
|
ID uint64 `gorm:"primaryKey;column:id" json:"id"` // 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"` // 更新时间
|
||
|
ReceivedAt string `gorm:"column:received_at" json:"receivedAt"` // 领取时间
|
||
|
Address string `gorm:"column:address" json:"Address"` // 地点
|
||
|
ApprovalID uint64 `gorm:"column:approval_id" json:"approvalId"` // 关联申请的ID
|
||
|
ApprovalExhibitions []*ApprovalExhibition `gorm:"foreignKey:ExhibitionID" json:"ApprovalExhibitions"` //关联包
|
||
|
}
|
||
|
|
||
|
// TableName get sql table name.获取数据库表名
|
||
|
func (m *Exhibition) TableName() string {
|
||
|
return "exhibition"
|
||
|
}
|
||
|
|
||
|
func (m *Exhibition) SaveApprovalContent(in *approval.ApprovalRequest, a *Approval) error {
|
||
|
|
||
|
//主体保存
|
||
|
m.ApprovalID = a.ID
|
||
|
m.ReceivedAt = in.Exhibition.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 *Exhibition) BuildResContent(a *Approval, request *approval.ApprovalRequest) {
|
||
|
//ApprovalWorks []*ApprovalWork `protobuf:"bytes,4,rep,name=ApprovalWorks,json=approvalWorks,proto3" json:"ApprovalWorks,omitempty"`
|
||
|
var approvalExhibitions []*approval.ApprovalExhibition
|
||
|
|
||
|
for _, one := range m.ApprovalExhibitions {
|
||
|
temp := &approval.ApprovalExhibition{
|
||
|
|
||
|
ID: one.ID,
|
||
|
ApprovalID: one.ApprovalID,
|
||
|
ArtworkId: one.ArtworkID,
|
||
|
ExhibitionID: one.ExhibitionID,
|
||
|
ExhibitionName: one.ExhibitionName,
|
||
|
ExhibitionSize: one.ExhibitionSize,
|
||
|
ExhibitionNumber: one.ExhibitionNumber,
|
||
|
}
|
||
|
approvalExhibitions = append(approvalExhibitions, temp)
|
||
|
|
||
|
}
|
||
|
|
||
|
request.Exhibition = &approval.Exhibition{
|
||
|
ID: m.ID,
|
||
|
ReceivedAt: m.ReceivedAt,
|
||
|
Address: m.Address,
|
||
|
|
||
|
ApprovalExhibitions: approvalExhibitions,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func (m *Exhibition) DeleteApproval(p *Approval) error {
|
||
|
var err error
|
||
|
|
||
|
if err = DB.Where(&ApprovalExhibition{ApprovalID: p.ID}).
|
||
|
Delete(&ApprovalExhibition{}).Error; err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
if err = DB.Where(&Exhibition{ApprovalID: p.ID}).
|
||
|
Delete(&Exhibition{}).Error; err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
return err
|
||
|
}
|