package service import ( "ai_xhs/database" "ai_xhs/models" ) // FeedbackService 反馈服务 type FeedbackService struct{} // NewFeedbackService 创建反馈服务 func NewFeedbackService() *FeedbackService { return &FeedbackService{} } // CreateFeedback 创建反馈 func (fs *FeedbackService) CreateFeedback(feedback *models.Feedback) error { return database.DB.Create(feedback).Error } // GetFeedbackList 获取反馈列表 func (fs *FeedbackService) GetFeedbackList(userID, page, pageSize int, feedbackType, status string) ([]models.Feedback, int64, error) { var feedbacks []models.Feedback var total int64 query := database.DB.Model(&models.Feedback{}).Where("created_user_id = ?", userID) // 筛选条件 if feedbackType != "" { query = query.Where("feedback_type = ?", feedbackType) } if status != "" { query = query.Where("status = ?", status) } // 获取总数 if err := query.Count(&total).Error; err != nil { return nil, 0, err } // 分页查询 offset := (page - 1) * pageSize if err := query.Order("created_at DESC").Offset(offset).Limit(pageSize).Find(&feedbacks).Error; err != nil { return nil, 0, err } return feedbacks, total, nil } // GetFeedbackByID 根据ID获取反馈 func (fs *FeedbackService) GetFeedbackByID(id int) (*models.Feedback, error) { var feedback models.Feedback if err := database.DB.First(&feedback, id).Error; err != nil { return nil, err } return &feedback, nil } // UpdateFeedbackStatus 更新反馈状态(管理员使用) func (fs *FeedbackService) UpdateFeedbackStatus(id int, status string) error { return database.DB.Model(&models.Feedback{}).Where("id = ?", id).Update("status", status).Error }