퀴즈 풀기/점수
This commit is contained in:
		
							
								
								
									
										66
									
								
								internal/services/paper.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								internal/services/paper.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,66 @@
 | 
			
		||||
package services
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"learnsteam/cslms-api/internal/models"
 | 
			
		||||
	"learnsteam/cslms-api/internal/repositories"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type paperService struct {
 | 
			
		||||
	repository          repositories.PaperRepository
 | 
			
		||||
	paperQuizRepository repositories.PaperQuizRepository
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type PaperService interface {
 | 
			
		||||
	List(int64, string, int, int) (*[]models.PaperResponse, error)
 | 
			
		||||
	Total(int64, string) (int64, error)
 | 
			
		||||
 | 
			
		||||
	Find(int64) (*models.PaperResponse, error)
 | 
			
		||||
	Get(int64) (*models.Paper, error)
 | 
			
		||||
	Update(*models.Paper) (*models.Paper, error)
 | 
			
		||||
 | 
			
		||||
	UpdateScore(int64) (*models.Paper, error)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewPaperService(repository repositories.PaperRepository, paperQuizRepository repositories.PaperQuizRepository) PaperService {
 | 
			
		||||
	return &paperService{
 | 
			
		||||
		repository:          repository,
 | 
			
		||||
		paperQuizRepository: paperQuizRepository,
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *paperService) List(user_id int64, q string, page int, limit int) (*[]models.PaperResponse, error) {
 | 
			
		||||
	return s.repository.List(user_id, q, page, limit)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *paperService) Total(user_id int64, q string) (int64, error) {
 | 
			
		||||
	return s.repository.Total(user_id, q)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *paperService) Find(id int64) (*models.PaperResponse, error) {
 | 
			
		||||
	return s.repository.Find(id)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *paperService) Get(id int64) (*models.Paper, error) {
 | 
			
		||||
	return s.repository.Get(id)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *paperService) Update(paper *models.Paper) (*models.Paper, error) {
 | 
			
		||||
	result, err := s.repository.Update(paper)
 | 
			
		||||
 | 
			
		||||
	return result, err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *paperService) UpdateScore(userquizpaper_id int64) (*models.Paper, error) {
 | 
			
		||||
	score, err := s.paperQuizRepository.SumScore(userquizpaper_id)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	userquizpaper, err := s.repository.Get(userquizpaper_id)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	userquizpaper.UserScore = score
 | 
			
		||||
	return s.repository.Update(userquizpaper)
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										43
									
								
								internal/services/paperquiz.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								internal/services/paperquiz.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,43 @@
 | 
			
		||||
package services
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"learnsteam/cslms-api/internal/models"
 | 
			
		||||
	"learnsteam/cslms-api/internal/repositories"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type paperQuizService struct {
 | 
			
		||||
	repository     repositories.PaperQuizRepository
 | 
			
		||||
	quizRepository repositories.QuizRepository
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type PaperQuizService interface {
 | 
			
		||||
	List(int64, int, int) (*[]models.PaperQuiz, error)
 | 
			
		||||
	Total(int64) (int64, error)
 | 
			
		||||
 | 
			
		||||
	Find(int64) (*models.PaperQuiz, error)
 | 
			
		||||
	Update(*models.PaperQuiz) (*models.PaperQuiz, error)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewPaperQuizService(repository repositories.PaperQuizRepository) PaperQuizService {
 | 
			
		||||
	return &paperQuizService{
 | 
			
		||||
		repository: repository,
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *paperQuizService) List(user_quiz_paper_id int64, page int, limit int) (*[]models.PaperQuiz, error) {
 | 
			
		||||
	return s.repository.List(user_quiz_paper_id, page, limit)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *paperQuizService) Total(user_quiz_paper_id int64) (int64, error) {
 | 
			
		||||
	return s.repository.Total(user_quiz_paper_id)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *paperQuizService) Find(id int64) (*models.PaperQuiz, error) {
 | 
			
		||||
	return s.repository.Find(id)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *paperQuizService) Update(quiz *models.PaperQuiz) (*models.PaperQuiz, error) {
 | 
			
		||||
	result, err := s.repository.Update(quiz)
 | 
			
		||||
 | 
			
		||||
	return result, err
 | 
			
		||||
}
 | 
			
		||||
@@ -84,6 +84,7 @@ func (s *userQuizService) Generate(quiz_paper_id int64, userQuizPaper *models.Us
 | 
			
		||||
			QuestionType:    quiz.QuestionType,
 | 
			
		||||
			Question:        quiz.Question,
 | 
			
		||||
			Content:         quiz.Content,
 | 
			
		||||
			Status:          "ready",
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		fmt.Println(userQuiz.Content)
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,7 @@
 | 
			
		||||
package services
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"learnsteam/cslms-api/internal/models"
 | 
			
		||||
	"learnsteam/cslms-api/internal/repositories"
 | 
			
		||||
 | 
			
		||||
@@ -8,7 +9,8 @@ import (
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type userQuizPaperService struct {
 | 
			
		||||
	repository repositories.UserQuizPaperRepository
 | 
			
		||||
	repository         repositories.UserQuizPaperRepository
 | 
			
		||||
	userquizRepository repositories.UserQuizRepository
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type UserQuizPaperService interface {
 | 
			
		||||
@@ -22,11 +24,13 @@ type UserQuizPaperService interface {
 | 
			
		||||
	Update(*models.UserQuizPaper) (*models.UserQuizPaper, error)
 | 
			
		||||
	Delete(string) error
 | 
			
		||||
	Generate([]int64, *models.QuizPaper) []models.UserQuizPaper
 | 
			
		||||
	UpdateScore(int64) (*models.UserQuizPaper, error)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewUserQuizPaperService(repository repositories.UserQuizPaperRepository) UserQuizPaperService {
 | 
			
		||||
func NewUserQuizPaperService(repository repositories.UserQuizPaperRepository, userquizRepository repositories.UserQuizRepository) UserQuizPaperService {
 | 
			
		||||
	return &userQuizPaperService{
 | 
			
		||||
		repository: repository,
 | 
			
		||||
		repository:         repository,
 | 
			
		||||
		userquizRepository: userquizRepository,
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -79,6 +83,7 @@ func (s *userQuizPaperService) Generate(users []int64, quizPaper *models.QuizPap
 | 
			
		||||
			CenterID:    quizPaper.CenterID,
 | 
			
		||||
			UserID:      user_id,
 | 
			
		||||
			QuizPaperID: quizPaper.ID,
 | 
			
		||||
			Status:      "ready",
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		userQuizPapers = append(userQuizPapers, userQuizPaper)
 | 
			
		||||
@@ -86,3 +91,19 @@ func (s *userQuizPaperService) Generate(users []int64, quizPaper *models.QuizPap
 | 
			
		||||
 | 
			
		||||
	return userQuizPapers
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (s *userQuizPaperService) UpdateScore(userquizpaper_id int64) (*models.UserQuizPaper, error) {
 | 
			
		||||
	score, err := s.userquizRepository.SumScore(userquizpaper_id)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	userquizpaper, err := s.repository.Get(userquizpaper_id)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	fmt.Println("score", score)
 | 
			
		||||
	userquizpaper.UserScore = score
 | 
			
		||||
	return s.repository.Update(userquizpaper)
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user