From d8271cbbdaa38f4f61e787c6ab63348c9ce0090f Mon Sep 17 00:00:00 2001 From: jhc <9316338+wangyitao309@user.noreply.gitee.com> Date: Tue, 25 Apr 2023 13:22:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20copier=E5=A4=8D=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/model/financial_form.go | 49 +++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/pkg/model/financial_form.go b/pkg/model/financial_form.go index 22433d4..ae0dacc 100644 --- a/pkg/model/financial_form.go +++ b/pkg/model/financial_form.go @@ -70,6 +70,21 @@ func (m *FinancialFrom) SaveApprovalContent(in *approval.CreateRequest, a *Appro copier.CopyWithOption(&m, in.FinancialFrom, copier.Option{DeepCopy: true}) m.ApprovalID = a.ID + costInfos := make([]*CostInfo, 0) + for i := 0; i < len(in.FinancialFrom.CostInfo); i++ { + costInfo := new(CostInfo) + copier.CopyWithOption(&costInfo, in.FinancialFrom.CostInfo[i], copier.Option{DeepCopy: true}) + costInfos = append(costInfos, costInfo) + } + m.CostInfo = costInfos + + invoiceInfos := make([]*InvoiceInfo, 0) + for i := 0; i < len(in.FinancialFrom.InvoiceInfo); i++ { + invoiceInfo := new(InvoiceInfo) + copier.CopyWithOption(&invoiceInfo, in.FinancialFrom.InvoiceInfo[i], copier.Option{DeepCopy: true}) + invoiceInfos = append(invoiceInfos, invoiceInfo) + } + m.InvoiceInfo = invoiceInfos return DB.Create(&m).Error } @@ -85,6 +100,22 @@ func (m *FinancialFrom) UpdateApprovalContent(in *approval.CreateRequest, a *App copier.CopyWithOption(&m, in.FinancialFrom, copier.Option{DeepCopy: true}) m.ID = entity.ID + costInfos := make([]*CostInfo, 0) + for i := 0; i < len(in.FinancialFrom.CostInfo); i++ { + costInfo := new(CostInfo) + copier.CopyWithOption(&costInfo, in.FinancialFrom.CostInfo[i], copier.Option{DeepCopy: true}) + costInfos = append(costInfos, costInfo) + } + m.CostInfo = costInfos + + invoiceInfos := make([]*InvoiceInfo, 0) + for i := 0; i < len(in.FinancialFrom.InvoiceInfo); i++ { + invoiceInfo := new(InvoiceInfo) + copier.CopyWithOption(&invoiceInfo, in.FinancialFrom.InvoiceInfo[i], copier.Option{DeepCopy: true}) + invoiceInfos = append(invoiceInfos, invoiceInfo) + } + m.InvoiceInfo = invoiceInfos + return DB.Model(&m).Updates(m).Error } @@ -92,6 +123,24 @@ func (m *FinancialFrom) BuildResContent(a *Approval, request *approval.CreateReq if a.FinancialFrom != nil { copier.CopyWithOption(&request.FinancialFrom, a.FinancialFrom, copier.Option{DeepCopy: true}) + + costInfos := make([]*approval.CostInfo, 0) + for i := 0; i < len(a.FinancialFrom.CostInfo); i++ { + costInfo := new(approval.CostInfo) + copier.CopyWithOption(&costInfo, a.FinancialFrom.CostInfo[i], copier.Option{DeepCopy: true}) + costInfos = append(costInfos, costInfo) + } + + request.FinancialFrom.CostInfo = costInfos + + invoiceInfos := make([]*approval.InvoiceInfo, 0) + for i := 0; i < len(a.FinancialFrom.InvoiceInfo); i++ { + invoiceInfo := new(approval.InvoiceInfo) + copier.CopyWithOption(&invoiceInfo, a.FinancialFrom.InvoiceInfo[i], copier.Option{DeepCopy: true}) + invoiceInfos = append(invoiceInfos, invoiceInfo) + } + + request.FinancialFrom.InvoiceInfo = invoiceInfos } }