zhangqian
2023-08-29 0d86d93cff554f54f83927d4f8bf03ed8c847883
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
}