81 lines
2.4 KiB
Go
81 lines
2.4 KiB
Go
package model
|
|
|
|
import (
|
|
"errors"
|
|
m2 "github.com/fonchain_enterprise/fonchain-approval-fork/pkg/m"
|
|
"gorm.io/plugin/soft_delete"
|
|
"time"
|
|
)
|
|
|
|
// Bundle 画展包审批
|
|
type Bundle 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"` // 更新时间
|
|
ReceivedAt string `gorm:"column:received_at" json:"receivedAt"` // 领取时间
|
|
ReturnAt string `gorm:"column:return_at" json:"ReturnAt"` // 领取时间
|
|
ApplicationsNum uint64 `gorm:"column:applications_num" json:"applicationsNum"` // 申请数量
|
|
ApprovalID uint64 `gorm:"column:approval_id" json:"approvalId"` // 绑定的申请id
|
|
}
|
|
|
|
// TableName get sql table name.获取数据库表名
|
|
func (m *Bundle) TableName() string {
|
|
return "bundle"
|
|
}
|
|
|
|
func (m *Bundle) GetApproval(id uint64) (*Approval, error) {
|
|
|
|
var entity *Approval
|
|
if err := DB.
|
|
Preload("ApprovalWorkFlows").
|
|
Preload("ApprovalType").
|
|
Preload("Bundle").
|
|
First(&entity, id).Error; err != nil {
|
|
return entity, err
|
|
}
|
|
|
|
return entity, nil
|
|
}
|
|
|
|
func (m *Bundle) SaveApprovalContent(in *approval.CreateRequest, a *Approval) error {
|
|
|
|
m.ApprovalID = a.ID
|
|
m.ReceivedAt = in.Bundle.ReceivedAt
|
|
m.ReturnAt = in.Bundle.ReturnAt
|
|
m.ApplicationsNum = in.Bundle.ApplicationsNum
|
|
|
|
return DB.Create(&m).Error
|
|
}
|
|
|
|
func (m *Bundle) UpdateApprovalContent(in *approval.CreateRequest, a *Approval) error {
|
|
|
|
var entity *Bundle
|
|
|
|
if err := DB.Where(&Bundle{ApprovalID: a.ID}).First(&entity).Error; err != nil {
|
|
return errors.New(m2.ErrorNotFound)
|
|
}
|
|
|
|
m.ID = entity.ID
|
|
//m.ApprovalID = a.ID
|
|
m.ReceivedAt = in.Bundle.ReceivedAt
|
|
m.ApplicationsNum = in.Bundle.ApplicationsNum
|
|
|
|
return DB.Model(&m).Updates(m).Error
|
|
}
|
|
|
|
func (m *Bundle) BuildResContent(a *Approval, request *approval.CreateRequest) {
|
|
|
|
if a.Bundle != nil {
|
|
request.Bundle = &approval.Bundle{
|
|
ID: a.Bundle.ID,
|
|
ReceivedAt: a.Bundle.ReceivedAt,
|
|
ApplicationsNum: a.Bundle.ApplicationsNum,
|
|
}
|
|
}
|
|
}
|
|
|
|
func (m *Bundle) DeleteApproval(p *Approval) error {
|
|
return DB.Where(&Bundle{ApprovalID: p.ID}).Delete(&Bundle{}).Error
|
|
}
|