fix 修改画作和画展更新的时候绑定关系更新错误

main
耿阳 2 years ago
parent c885c3fb44
commit cfa705caa9

@ -166,7 +166,12 @@ func approvalCalc(filter *Approval) *approval.Information {
var num int64 var num int64
info := &approval.Information{} info := &approval.Information{
Total: 0,
DoingTotal: 0,
SuccessTotal: 0,
FailTotal: 0,
}
DB.Model(&Approval{}).Where(&filter).Count(&num) DB.Model(&Approval{}).Where(&filter).Count(&num)
info.Total = uint64(num) info.Total = uint64(num)

@ -1,8 +1,11 @@
package model package model
import ( import (
"errors"
"fmt"
"github.com/fonchain_enterprise/fonchain-approval/api/approval" "github.com/fonchain_enterprise/fonchain-approval/api/approval"
"github.com/fonchain_enterprise/fonchain-approval/pkg/common/collection" "github.com/fonchain_enterprise/fonchain-approval/pkg/common/collection"
m2 "github.com/fonchain_enterprise/fonchain-approval/pkg/m"
"gorm.io/plugin/soft_delete" "gorm.io/plugin/soft_delete"
"time" "time"
) )
@ -60,7 +63,28 @@ func (m *Exhibition) SaveApprovalContent(in *approval.CreateRequest, a *Approval
} }
func (m *Exhibition) UpdateApprovalContent(in *approval.CreateRequest, a *Approval) error { 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 approvalExhibitions := in.Exhibition.ApprovalExhibitions
var oldApprovalExhibitions []ApprovalExhibition var oldApprovalExhibitions []ApprovalExhibition
var oldPackageID []uint64 var oldPackageID []uint64
@ -80,6 +104,7 @@ func (m *Exhibition) UpdateApprovalContent(in *approval.CreateRequest, a *Approv
} }
needDel := collection.DiffArrayUint64(oldPackageID, inPackageID) needDel := collection.DiffArrayUint64(oldPackageID, inPackageID)
fmt.Println(needDel)
if len(needDel) > 0 { if len(needDel) > 0 {
DB.Where(&ApprovalExhibition{ExhibitionID: m.ID}).Where("package_id in ?", needDel). 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) needAdd := collection.DiffArrayUint64(inPackageID, oldPackageID)
fmt.Println(needAdd)
//传递的id去除表 新增 //传递的id去除表 新增
if len(needAdd) > 0 { if len(needAdd) > 0 {
var approvalWorks []ApprovalExhibition var approvalWorks []ApprovalExhibition
for _, one := range approvalExhibitions { for _, tempId := range needAdd {
temp := ApprovalExhibition{ temp := ApprovalExhibition{
ApprovalID: a.ID, ApprovalID: a.ID,
ExhibitionID: m.ID, ExhibitionID: m.ID,
PackageName: one.PackageName, PackageName: inApprovalExhibitionMap[tempId].PackageName,
PackageID: one.PackageID, PackageID: inApprovalExhibitionMap[tempId].PackageID,
PackageSize: one.PackageSize, PackageSize: inApprovalExhibitionMap[tempId].PackageSize,
PackageNumber: one.PackageNumber, PackageNumber: inApprovalExhibitionMap[tempId].PackageNumber,
} }
approvalWorks = append(approvalWorks, temp) approvalWorks = append(approvalWorks, temp)
@ -136,7 +162,6 @@ func (m *Exhibition) UpdateApprovalContent(in *approval.CreateRequest, a *Approv
} }
return err return err
} }
func (m *Exhibition) BuildResContent(a *Approval, request *approval.CreateRequest) { func (m *Exhibition) BuildResContent(a *Approval, request *approval.CreateRequest) {

@ -116,15 +116,15 @@ func (m *Work) UpdateContent(in *approval.CreateRequest, a *Approval) error {
//传递的id去除表 新增 //传递的id去除表 新增
if len(needAdd) > 0 { if len(needAdd) > 0 {
var approvalWorks []ApprovalWork var approvalWorks []ApprovalWork
for _, approvalWork := range in.Work.ApprovalWorks { for _, tempId := range needAdd {
temp := ApprovalWork{ temp := ApprovalWork{
ApprovalID: a.ID, ApprovalID: a.ID,
WorkID: m.ID, WorkID: m.ID,
ArtworkID: approvalWork.ArtworkID, ArtworkID: inApprovalWorkMap[tempId].ArtworkID,
ArtworkName: approvalWork.ArtworkName, ArtworkName: inApprovalWorkMap[tempId].ArtworkName,
ArtistName: approvalWork.ArtistName, ArtistName: inApprovalWorkMap[tempId].ArtistName,
ArtworkCover: approvalWork.ArtworkCover, ArtworkCover: inApprovalWorkMap[tempId].ArtworkCover,
ArtworkNumber: approvalWork.ArtworkNumber, ArtworkNumber: inApprovalWorkMap[tempId].ArtworkNumber,
} }
approvalWorks = append(approvalWorks, temp) approvalWorks = append(approvalWorks, temp)

Loading…
Cancel
Save