diff --git a/pkg/model/approval.go b/pkg/model/approval.go index 5cd74d3..ab8c4f2 100644 --- a/pkg/model/approval.go +++ b/pkg/model/approval.go @@ -166,7 +166,12 @@ func approvalCalc(filter *Approval) *approval.Information { var num int64 - info := &approval.Information{} + info := &approval.Information{ + Total: 0, + DoingTotal: 0, + SuccessTotal: 0, + FailTotal: 0, + } DB.Model(&Approval{}).Where(&filter).Count(&num) info.Total = uint64(num) diff --git a/pkg/model/exhibition.go b/pkg/model/exhibition.go index 00f9be2..15c7bee 100644 --- a/pkg/model/exhibition.go +++ b/pkg/model/exhibition.go @@ -1,8 +1,11 @@ package model import ( + "errors" + "fmt" "github.com/fonchain_enterprise/fonchain-approval/api/approval" "github.com/fonchain_enterprise/fonchain-approval/pkg/common/collection" + m2 "github.com/fonchain_enterprise/fonchain-approval/pkg/m" "gorm.io/plugin/soft_delete" "time" ) @@ -60,7 +63,28 @@ func (m *Exhibition) SaveApprovalContent(in *approval.CreateRequest, a *Approval } func (m *Exhibition) UpdateApprovalContent(in *approval.CreateRequest, a *Approval) error { + var entity *Exhibition + var err error + + //主体保存 + if err = DB.Where(&Exhibition{ApprovalID: a.ID}).First(&entity).Error; err != nil { + return errors.New(m2.ErrorNotFound) + } + + //主体保存 + //m.ApprovalID = a.ID + m.ReceivedAt = in.Exhibition.ReceivedAt + m.Address = in.Exhibition.Address + m.ID = entity.ID + + if err = DB.Where(&Exhibition{ApprovalID: a.ID}).Updates(&m).Error; err != nil { + return err + } + return m.UpdateContent(in, a) +} + +func (m *Exhibition) UpdateContent(in *approval.CreateRequest, a *Approval) error { approvalExhibitions := in.Exhibition.ApprovalExhibitions var oldApprovalExhibitions []ApprovalExhibition var oldPackageID []uint64 @@ -80,6 +104,7 @@ func (m *Exhibition) UpdateApprovalContent(in *approval.CreateRequest, a *Approv } needDel := collection.DiffArrayUint64(oldPackageID, inPackageID) + fmt.Println(needDel) if len(needDel) > 0 { DB.Where(&ApprovalExhibition{ExhibitionID: m.ID}).Where("package_id in ?", needDel). @@ -87,18 +112,19 @@ func (m *Exhibition) UpdateApprovalContent(in *approval.CreateRequest, a *Approv } needAdd := collection.DiffArrayUint64(inPackageID, oldPackageID) + fmt.Println(needAdd) //传递的id去除表 新增 if len(needAdd) > 0 { var approvalWorks []ApprovalExhibition - for _, one := range approvalExhibitions { + for _, tempId := range needAdd { temp := ApprovalExhibition{ ApprovalID: a.ID, ExhibitionID: m.ID, - PackageName: one.PackageName, - PackageID: one.PackageID, - PackageSize: one.PackageSize, - PackageNumber: one.PackageNumber, + PackageName: inApprovalExhibitionMap[tempId].PackageName, + PackageID: inApprovalExhibitionMap[tempId].PackageID, + PackageSize: inApprovalExhibitionMap[tempId].PackageSize, + PackageNumber: inApprovalExhibitionMap[tempId].PackageNumber, } approvalWorks = append(approvalWorks, temp) @@ -136,7 +162,6 @@ func (m *Exhibition) UpdateApprovalContent(in *approval.CreateRequest, a *Approv } return err - } func (m *Exhibition) BuildResContent(a *Approval, request *approval.CreateRequest) { diff --git a/pkg/model/work.go b/pkg/model/work.go index 0f63d16..f901b17 100644 --- a/pkg/model/work.go +++ b/pkg/model/work.go @@ -116,15 +116,15 @@ func (m *Work) UpdateContent(in *approval.CreateRequest, a *Approval) error { //传递的id去除表 新增 if len(needAdd) > 0 { var approvalWorks []ApprovalWork - for _, approvalWork := range in.Work.ApprovalWorks { + for _, tempId := range needAdd { temp := ApprovalWork{ ApprovalID: a.ID, WorkID: m.ID, - ArtworkID: approvalWork.ArtworkID, - ArtworkName: approvalWork.ArtworkName, - ArtistName: approvalWork.ArtistName, - ArtworkCover: approvalWork.ArtworkCover, - ArtworkNumber: approvalWork.ArtworkNumber, + ArtworkID: inApprovalWorkMap[tempId].ArtworkID, + ArtworkName: inApprovalWorkMap[tempId].ArtworkName, + ArtistName: inApprovalWorkMap[tempId].ArtistName, + ArtworkCover: inApprovalWorkMap[tempId].ArtworkCover, + ArtworkNumber: inApprovalWorkMap[tempId].ArtworkNumber, } approvalWorks = append(approvalWorks, temp)