81 lines
2.4 KiB
Go
81 lines
2.4 KiB
Go
package dao
|
|
|
|
import (
|
|
"fonchain-artshow/cmd/model"
|
|
"fonchain-artshow/pkg/db"
|
|
"go.uber.org/zap"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
func SaveArtworkPrice(tx *gorm.DB, artworks []*model.ArtworkPrice) (err error, ids []uint) {
|
|
ids = make([]uint, 0) // 用于记录 更新的记录ID
|
|
|
|
for i := 0; i < len(artworks); i++ {
|
|
if artworks[i].ID != 0 {
|
|
err = tx.Model(&model.ArtworkPrice{}).Omit("id").Where("id = ?", artworks[i].ID).Updates(artworks[i]).Error
|
|
} else {
|
|
artworkPrice := new(model.ArtworkPrice)
|
|
results := tx.Model(&model.ArtworkPrice{}).Where("show_id = ? and artwork_id = ?", artworks[i].ShowID, artworks[i].ArtworkID).First(&artworkPrice)
|
|
if results.Error == nil || artworkPrice.ID == 0 {
|
|
err = tx.Model(&model.ArtworkPrice{}).Create(&artworks[i]).Error
|
|
} else {
|
|
err = tx.Model(&model.ArtworkPrice{}).Where("show_id = ? and artwork_id = ?", artworks[i].ShowID, artworks[i].ArtworkID).Updates(artworks[i]).Error
|
|
}
|
|
}
|
|
if err != nil {
|
|
zap.L().Error("Artwork price save err", zap.Error(err))
|
|
return
|
|
}
|
|
ids = append(ids, artworks[i].ID)
|
|
}
|
|
return
|
|
}
|
|
|
|
func ArtworkPriceList(showID uint) (err error, out []*model.ArtworkPrice) {
|
|
out = make([]*model.ArtworkPrice, 0)
|
|
err = db.DbArtShow.Model(&model.ArtworkPrice{}).Where("show_id = ? ", showID).Find(&out).Error
|
|
if err != nil {
|
|
zap.L().Error("Artwork list err", zap.Error(err))
|
|
return
|
|
}
|
|
return
|
|
}
|
|
|
|
func QueryArtworkPrice_artworkID(artworkID int64) (err error, out *model.ArtworkPrice) {
|
|
out = new(model.ArtworkPrice)
|
|
err = db.DbArtShow.Model(&model.ArtworkPrice{}).Where("artwork_id = ? ", artworkID).Find(&out).Error
|
|
if err != nil {
|
|
zap.L().Error("Artwork price artwork_id query err", zap.Error(err))
|
|
return
|
|
}
|
|
return
|
|
}
|
|
|
|
func QueryArtworkPrice_id(id uint) (err error, out *model.ArtworkPrice) {
|
|
out = new(model.ArtworkPrice)
|
|
err = db.DbArtShow.Model(&model.ArtworkPrice{}).Where("id = ? ", id).Find(&out).Error
|
|
if err != nil {
|
|
zap.L().Error("Artwork price id query err", zap.Error(err))
|
|
return
|
|
}
|
|
return
|
|
}
|
|
|
|
func DelArtworkPrice(tx *gorm.DB, ids []int64) (err error) {
|
|
err = tx.Where("id in (?)", ids).Delete(&model.ArtworkPrice{}).Error
|
|
if err != nil {
|
|
zap.L().Error("Artwork delete err", zap.Error(err))
|
|
return
|
|
}
|
|
return
|
|
}
|
|
|
|
func DelArtworkPrice_showId(tx *gorm.DB, id int64) (err error) {
|
|
err = tx.Where("show_id = ? ", id).Delete(&model.ArtworkPrice{}).Error
|
|
if err != nil {
|
|
zap.L().Error("Artwork delete err", zap.Error(err))
|
|
return
|
|
}
|
|
return
|
|
}
|