commit
This commit is contained in:
62
go_backend/service/feedback_service.go
Normal file
62
go_backend/service/feedback_service.go
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user