You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
2.0 KiB
Go

package dao
import (
"fonchain-artshow/cmd/model"
"fonchain-artshow/pkg/db"
"go.uber.org/zap"
"gorm.io/gorm"
)
func SaveShowRels(tx *gorm.DB, showRels []*model.ShowRel) (err error, out []uint) {
out = make([]uint, 0)
for i := 0; i < len(showRels); i++ {
if showRels[i].ID != 0 {
err = tx.Model(&model.ShowRel{}).Omit("id").Where("id = ?", showRels[i].ID).Updates(showRels[i]).Error
} else {
err = tx.Model(&model.ShowRel{}).Create(&showRels[i]).Error
}
if err != nil {
zap.L().Error("ShowRels err", zap.Error(err))
return err, nil
}
out = append(out, showRels[i].ID)
}
return
}
func SaveShowRel(tx *gorm.DB, showRel *model.ShowRel) (err error) {
err = tx.Model(&model.ShowRel{}).Where("show_id = ?", showRel.ShowID).Updates(showRel).Error
if err != nil {
zap.L().Error("ShowRel err", zap.Error(err))
return err
}
return
}
func DelShowRel(tx *gorm.DB, ids []uint) (err error) {
err = tx.Where("id in (?)", ids).Delete(&model.ShowRel{}).Error
if err != nil {
zap.L().Error("ShowRel delete err", zap.Error(err))
return
}
return
}
func DelShowRelByApplyID(tx *gorm.DB, applyID uint) (err error) {
err = tx.Where("apply_id = ? ", applyID).Delete(&model.ShowRel{}).Error
if err != nil {
zap.L().Error("ShowRel by applyID delete err", zap.Error(err))
return
}
return
}
func QueryShowRel(showID uint) (err error, out *model.ShowRel) {
out = new(model.ShowRel)
findDB := db.DbArtShow.Model(&model.ShowRel{})
if showID != 0 {
findDB = findDB.Where("id = ? ", showID)
}
err = findDB.Find(&out).Error
if err != nil {
zap.L().Error("QueryShowRel err", zap.Error(err))
return
}
return
}
func QueryShowRelList(applyID uint) (err error, out []*model.ShowRel) {
out = make([]*model.ShowRel, 0)
findDB := db.DbArtShow.Model(&model.ShowRel{})
if applyID != 0 {
findDB = findDB.Where("apply_id = ? ", applyID)
}
err = findDB.Find(&out).Error
if err != nil {
zap.L().Error("QueryShowRelList err", zap.Error(err))
return
}
return
}