This commit is contained in:
sjk
2026-01-06 19:36:42 +08:00
parent 15b579d64a
commit 19942144fb
261 changed files with 24034 additions and 5477 deletions

View File

@@ -0,0 +1,62 @@
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
}