퀴즈 풀기/점수

This commit is contained in:
2024-02-19 22:43:31 +09:00
parent 41e1ed5c58
commit 05292be591
24 changed files with 2425 additions and 39 deletions

View 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)
}

View 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
}

View File

@ -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)

View File

@ -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)
}