From 0d86d93cff554f54f83927d4f8bf03ed8c847883 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期二, 29 八月 2023 17:14:54 +0800 Subject: [PATCH] fix&字段完善 --- service/purchase/purchase.go | 31 ++++++++++++++++++++++++++----- 1 files changed, 26 insertions(+), 5 deletions(-) diff --git a/service/purchase/purchase.go b/service/purchase/purchase.go index bbef0f1..352395d 100644 --- a/service/purchase/purchase.go +++ b/service/purchase/purchase.go @@ -132,7 +132,7 @@ func (slf *PurchaseService) GetPurchaseProductList(purchaseId uint) (list []*purchase.PurchaseProducts, err error) { db := global.GVA_DB.Model(&purchase.PurchaseProducts{}) list = make([]*purchase.PurchaseProducts, 0) - err = db.Where("purchase_id = ?", purchaseId).Find(&list).Error + err = db.Where("purchase_id = ?", purchaseId).Preload("Product").Find(&list).Error return list, err } @@ -214,15 +214,36 @@ } func (slf *PurchaseService) SavePurchaseType(list []*purchase.PurchaseType) (err error) { + ids := make([]uint, 0) + newRecords := make([]*purchase.PurchaseType, 0) + for _, item := range list { + if item.ID != 0 { + ids = append(ids, item.ID) + } else { + newRecords = append(newRecords, item) + } + } err = global.GVA_DB.Transaction(func(tx *gorm.DB) error { - err = tx.Where("1 = ?", 1).Delete(&purchase.PurchaseType{}).Error + err = tx.Where("id not in ?", ids).Delete(&purchase.PurchaseType{}).Error if err != nil { return err } - for _, item := range list { - item.ID = 0 + if len(newRecords) > 0 { + err = tx.Create(newRecords).Error + if err != nil { + return err + } } - return tx.Create(list).Error + + for _, item := range list { + if item.ID != 0 { + err = tx.Save(item).Error + if err != nil { + return err + } + } + } + return nil }) return err } -- Gitblit v1.8.0