From 3c31b965812a04331c54d670be877a1a91ffea59 Mon Sep 17 00:00:00 2001 From: CharlesLam0 Date: Mon, 12 May 2025 20:52:53 +0800 Subject: [PATCH] update review count --- danke/api/review.go | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/danke/api/review.go b/danke/api/review.go index 601aba7..0beb090 100644 --- a/danke/api/review.go +++ b/danke/api/review.go @@ -255,8 +255,35 @@ func DeleteReviewV1(c *fiber.Ctx) (err error) { return Forbidden("没有权限") } - // 删除评论 - err = DB.Delete(review).Error + // 在事务中删除评论并更新计数 + err = DB.Transaction(func(tx *gorm.DB) error { + // 删除评论 + if err := tx.Delete(review).Error; err != nil { + return err + } + + // 更新课程评教数量 + if err := tx.Model(&Course{ID: review.CourseID}). + Update("review_count", gorm.Expr("review_count - 1")).Error; err != nil { + return err + } + + // 获取课程组ID + var courseGroupID int + if err := tx.Model(&Course{}).Select("course_group_id"). + Where("id = ?", review.CourseID).Scan(&courseGroupID).Error; err != nil { + return err + } + + // 更新课程组评教数量 + if err := tx.Model(&CourseGroup{ID: courseGroupID}). + Update("review_count", gorm.Expr("review_count - 1")).Error; err != nil { + return err + } + + return nil + }) + if err != nil { return }