퀴즈 풀기/점수
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