From c227e3938798eb7d529575ba1f3ea1c56ae63cfe Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期一, 01 七月 2024 13:16:34 +0800
Subject: [PATCH] refactor:恢复成绩接口

---
 src/main/java/com/ycl/jxkg/domain/vo/admin/paper/ExamPaperAnswerPageRequestVO.java        |    2 
 src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerPageResponseVO.java |    9 +
 src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerExportVO.java       |    4 
 src/main/resources/mapper/ExamPaperScoreMapper.xml                                        |   75 +++++++++---------
 src/main/java/com/ycl/jxkg/controller/wx/student/ExamPaperAnswerController.java           |   59 +++++---------
 src/main/java/com/ycl/jxkg/domain/entity/ExamPaperScore.java                              |    1 
 src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerPageVO.java         |    2 
 src/main/java/com/ycl/jxkg/controller/student/ExamPaperAnswerController.java              |   34 +-------
 src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java                               |    2 
 src/main/java/com/ycl/jxkg/service/ExamPaperScoreService.java                             |    2 
 src/main/java/com/ycl/jxkg/service/impl/ExamPaperScoreServiceImpl.java                    |    9 -
 11 files changed, 85 insertions(+), 114 deletions(-)

diff --git a/src/main/java/com/ycl/jxkg/controller/student/ExamPaperAnswerController.java b/src/main/java/com/ycl/jxkg/controller/student/ExamPaperAnswerController.java
index 1f3c735..fe52355 100644
--- a/src/main/java/com/ycl/jxkg/controller/student/ExamPaperAnswerController.java
+++ b/src/main/java/com/ycl/jxkg/controller/student/ExamPaperAnswerController.java
@@ -1,34 +1,24 @@
 package com.ycl.jxkg.controller.student;
 
+import com.github.pagehelper.PageInfo;
 import com.ycl.jxkg.base.BaseApiController;
 import com.ycl.jxkg.base.Result;
-import com.ycl.jxkg.domain.*;
+import com.ycl.jxkg.domain.ExamPaperAnswerInfo;
 import com.ycl.jxkg.domain.entity.ExamPaperScore;
-import com.ycl.jxkg.domain.entity.Subject;
 import com.ycl.jxkg.domain.entity.User;
-import com.ycl.jxkg.domain.entity.UserEventLog;
-import com.ycl.jxkg.enums.ExamPaperAnswerStatusEnum;
-import com.ycl.jxkg.event.CalculateExamPaperAnswerCompleteEvent;
-import com.ycl.jxkg.event.UserEvent;
-import com.ycl.jxkg.service.ExamPaperScoreService;
-import com.ycl.jxkg.service.ExamPaperService;
-import com.ycl.jxkg.service.SubjectService;
-import com.ycl.jxkg.utils.DateTimeUtil;
-import com.ycl.jxkg.utils.ExamUtil;
-import com.ycl.jxkg.utils.PageInfoHelper;
 import com.ycl.jxkg.domain.vo.admin.exam.ExamPaperEditRequestVO;
 import com.ycl.jxkg.domain.vo.student.exam.ExamPaperReadVO;
 import com.ycl.jxkg.domain.vo.student.exam.ExamPaperSubmitVO;
 import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageResponseVO;
 import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageVO;
-import com.github.pagehelper.PageInfo;
+import com.ycl.jxkg.service.ExamPaperScoreService;
+import com.ycl.jxkg.service.ExamPaperService;
+import com.ycl.jxkg.service.SubjectService;
 import lombok.RequiredArgsConstructor;
-import org.springframework.beans.BeanUtils;
 import org.springframework.context.ApplicationEventPublisher;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
-import java.util.Date;
 
 @RequiredArgsConstructor
 @RestController("StudentExamPaperAnswerController")
@@ -44,19 +34,7 @@
     @RequestMapping(value = "/pageList", method = RequestMethod.POST)
     public Result<PageInfo<ExamPaperAnswerPageResponseVO>> pageList(@RequestBody @Valid ExamPaperAnswerPageVO model) {
         model.setCreateUser(getCurrentUser().getId());
-        PageInfo<ExamPaperScore> pageInfo = examPaperScoreService.studentPage(model);
-        PageInfo<ExamPaperAnswerPageResponseVO> page = PageInfoHelper.copyMap(pageInfo, e -> {
-            ExamPaperAnswerPageResponseVO vo = new ExamPaperAnswerPageResponseVO();
-//            BeanUtils.copyProperties(e, vo);
-//            Subject subject = subjectService.getById(vo.getSubjectId());
-//            vo.setDoTime(ExamUtil.secondToVM(e.getDoTime()));
-//            vo.setSystemScore(ExamUtil.scoreToVM(e.getSystemScore()));
-//            vo.setUserScore(ExamUtil.scoreToVM(e.getUserScore()));
-//            vo.setPaperScore(ExamUtil.scoreToVM(e.getPaperScore()));
-//            vo.setSubjectName(subject.getName());
-//            vo.setCreateTime(DateTimeUtil.dateFormat(e.getCreateTime()));
-            return vo;
-        });
+        PageInfo<ExamPaperAnswerPageResponseVO> page = examPaperScoreService.studentPage(model);
         return Result.ok(page);
     }
 
diff --git a/src/main/java/com/ycl/jxkg/controller/wx/student/ExamPaperAnswerController.java b/src/main/java/com/ycl/jxkg/controller/wx/student/ExamPaperAnswerController.java
index c1893b6..9df49bf 100644
--- a/src/main/java/com/ycl/jxkg/controller/wx/student/ExamPaperAnswerController.java
+++ b/src/main/java/com/ycl/jxkg/controller/wx/student/ExamPaperAnswerController.java
@@ -2,35 +2,22 @@
 
 import com.ycl.jxkg.base.Result;
 import com.ycl.jxkg.controller.wx.BaseWXApiController;
-import com.ycl.jxkg.domain.*;
 import com.ycl.jxkg.domain.entity.ExamPaperScore;
-import com.ycl.jxkg.domain.entity.Subject;
-import com.ycl.jxkg.domain.entity.User;
-import com.ycl.jxkg.domain.entity.UserEventLog;
-import com.ycl.jxkg.enums.QuestionTypeEnum;
-import com.ycl.jxkg.event.CalculateExamPaperAnswerCompleteEvent;
-import com.ycl.jxkg.event.UserEvent;
-import com.ycl.jxkg.service.ExamPaperScoreService;
-import com.ycl.jxkg.service.ExamPaperService;
-import com.ycl.jxkg.service.SubjectService;
-import com.ycl.jxkg.utils.DateTimeUtil;
-import com.ycl.jxkg.utils.ExamUtil;
-import com.ycl.jxkg.utils.PageInfoHelper;
 import com.ycl.jxkg.domain.vo.admin.exam.ExamPaperEditRequestVO;
-import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageResponseVO;
-import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageVO;
-import com.github.pagehelper.PageInfo;
 import com.ycl.jxkg.domain.vo.student.exam.ExamPaperReadVO;
 import com.ycl.jxkg.domain.vo.student.exam.ExamPaperSubmitItemVO;
 import com.ycl.jxkg.domain.vo.student.exam.ExamPaperSubmitVO;
+import com.ycl.jxkg.enums.QuestionTypeEnum;
+import com.ycl.jxkg.service.ExamPaperScoreService;
+import com.ycl.jxkg.service.ExamPaperService;
+import com.ycl.jxkg.service.SubjectService;
+import com.ycl.jxkg.utils.ExamUtil;
 import lombok.RequiredArgsConstructor;
-import org.springframework.beans.BeanUtils;
 import org.springframework.context.ApplicationEventPublisher;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
-import javax.validation.Valid;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -45,24 +32,24 @@
     private final ApplicationEventPublisher eventPublisher;
     private final ExamPaperService examPaperService;
 
-    @RequestMapping(value = "/pageList", method = RequestMethod.POST)
-    public Result<PageInfo<ExamPaperAnswerPageResponseVO>> pageList(@Valid ExamPaperAnswerPageVO model) {
-        model.setCreateUser(getCurrentUser().getId());
-        PageInfo<ExamPaperScore> pageInfo = examPaperScoreService.studentPage(model);
-        PageInfo<ExamPaperAnswerPageResponseVO> page = PageInfoHelper.copyMap(pageInfo, e -> {
-            ExamPaperAnswerPageResponseVO vo = new ExamPaperAnswerPageResponseVO();
-            BeanUtils.copyProperties(e, vo);
-            Subject subject = subjectService.getById(vo.getSubjectId());
-            vo.setDoTime(ExamUtil.secondToVM(e.getDoTime()));
-//            vo.setSystemScore(ExamUtil.scoreToVM(e.getSystemScore()));
-//            vo.setUserScore(ExamUtil.scoreToVM(e.getUserScore()));
-//            vo.setPaperScore(ExamUtil.scoreToVM(e.getPaperScore()));
-            vo.setSubjectName(subject.getName());
-//            vo.setCreateTime(DateTimeUtil.dateFormat(e.get));
-            return vo;
-        });
-        return Result.ok(page);
-    }
+//     @RequestMapping(value = "/pageList", method = RequestMethod.POST)
+//     public Result<PageInfo<ExamPaperAnswerPageResponseVO>> pageList(@Valid ExamPaperAnswerPageVO model) {
+//         model.setCreateUser(getCurrentUser().getId());
+//         PageInfo<ExamPaperScore> pageInfo = examPaperScoreService.studentPage(model);
+//         PageInfo<ExamPaperAnswerPageResponseVO> page = PageInfoHelper.copyMap(pageInfo, e -> {
+//             ExamPaperAnswerPageResponseVO vo = new ExamPaperAnswerPageResponseVO();
+//             BeanUtils.copyProperties(e, vo);
+//             Subject subject = subjectService.getById(vo.getSubjectId());
+//             vo.setDoTime(ExamUtil.secondToVM(e.getDoTime()));
+// //            vo.setSystemScore(ExamUtil.scoreToVM(e.getSystemScore()));
+// //            vo.setUserScore(ExamUtil.scoreToVM(e.getUserScore()));
+// //            vo.setPaperScore(ExamUtil.scoreToVM(e.getPaperScore()));
+//             vo.setSubjectName(subject.getName());
+//             vo.setCreateTime(DateTimeUtil.dateFormat(e.getCreateTime()));
+//             return vo;
+//         });
+//         return Result.ok(page);
+//     }
 
 
     @RequestMapping(value = "/answerSubmit", method = RequestMethod.POST)
diff --git a/src/main/java/com/ycl/jxkg/domain/entity/ExamPaperScore.java b/src/main/java/com/ycl/jxkg/domain/entity/ExamPaperScore.java
index 8e884dc..738eb93 100644
--- a/src/main/java/com/ycl/jxkg/domain/entity/ExamPaperScore.java
+++ b/src/main/java/com/ycl/jxkg/domain/entity/ExamPaperScore.java
@@ -6,7 +6,6 @@
 import com.ycl.jxkg.domain.base.AbsEntity;
 import lombok.Data;
 
-import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;
 
diff --git a/src/main/java/com/ycl/jxkg/domain/vo/admin/paper/ExamPaperAnswerPageRequestVO.java b/src/main/java/com/ycl/jxkg/domain/vo/admin/paper/ExamPaperAnswerPageRequestVO.java
index d150342..f440fb6 100644
--- a/src/main/java/com/ycl/jxkg/domain/vo/admin/paper/ExamPaperAnswerPageRequestVO.java
+++ b/src/main/java/com/ycl/jxkg/domain/vo/admin/paper/ExamPaperAnswerPageRequestVO.java
@@ -12,6 +12,8 @@
 
     private Integer examPaperId;
 
+    private Integer examId;
+
     private String name;
 
     private String userName;
diff --git a/src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerExportVO.java b/src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerExportVO.java
index d60564e..a12009c 100644
--- a/src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerExportVO.java
+++ b/src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerExportVO.java
@@ -20,10 +20,10 @@
     private String userName;
 
     @ExcelProperty("鍒嗘暟")
-    private String userScore;
+    private String score;
 
     @ExcelProperty("鎬诲垎")
-    private String paperScore;
+    private String totalScore;
 
     @ExcelProperty("姝g‘棰樻暟")
     private Integer questionCorrect;
diff --git a/src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerPageResponseVO.java b/src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerPageResponseVO.java
index f973851..eb8437e 100644
--- a/src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerPageResponseVO.java
+++ b/src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerPageResponseVO.java
@@ -2,6 +2,9 @@
 
 import lombok.Data;
 
+/**
+ * @author gonghl
+ */
 @Data
 public class ExamPaperAnswerPageResponseVO {
 
@@ -9,7 +12,9 @@
 
     private String createTime;
 
-    private String userScore;
+    private String submitTime;
+
+    private String score;
 
     private String subjectName;
 
@@ -25,7 +30,7 @@
 
     private Integer paperType;
 
-    private String systemScore;
+    private String totalScore;
 
     private Integer status;
 
diff --git a/src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerPageVO.java b/src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerPageVO.java
index ee73a16..d33c46d 100644
--- a/src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerPageVO.java
+++ b/src/main/java/com/ycl/jxkg/domain/vo/student/exampaper/ExamPaperAnswerPageVO.java
@@ -6,7 +6,7 @@
 @Data
 public class ExamPaperAnswerPageVO extends BasePage {
 
-    private Integer subjectId;
+    private String examName;
 
     private Integer createUser;
 
diff --git a/src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java b/src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java
index 366faeb..2e75e96 100644
--- a/src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java
+++ b/src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java
@@ -15,7 +15,7 @@
 @Mapper
 public interface ExamPaperScoreMapper extends BaseMapper<ExamPaperScore> {
 
-    List<ExamPaperScore> studentPage(ExamPaperAnswerPageVO requestVM);
+    List<ExamPaperAnswerPageResponseVO> studentPage(ExamPaperAnswerPageVO requestVM);
 
     Integer selectAllCount();
     Integer selectAllQuestionCount();
diff --git a/src/main/java/com/ycl/jxkg/service/ExamPaperScoreService.java b/src/main/java/com/ycl/jxkg/service/ExamPaperScoreService.java
index 989250a..5a24a31 100644
--- a/src/main/java/com/ycl/jxkg/service/ExamPaperScoreService.java
+++ b/src/main/java/com/ycl/jxkg/service/ExamPaperScoreService.java
@@ -20,7 +20,7 @@
      * @param requestVM 杩囨护鏉′欢
      * @return PageInfo<ExamPaperAnswer>
      */
-    PageInfo<ExamPaperScore> studentPage(ExamPaperAnswerPageVO requestVM);
+    PageInfo<ExamPaperAnswerPageResponseVO> studentPage(ExamPaperAnswerPageVO requestVM);
 
     /**
      * 璁$畻璇曞嵎鎻愪氦缁撴灉(涓嶅叆搴�)
diff --git a/src/main/java/com/ycl/jxkg/service/impl/ExamPaperScoreServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/ExamPaperScoreServiceImpl.java
index 4c8ac51..0956744 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/ExamPaperScoreServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/ExamPaperScoreServiceImpl.java
@@ -5,22 +5,20 @@
 import com.github.pagehelper.PageInfo;
 import com.ycl.jxkg.domain.ExamPaperAnswerInfo;
 import com.ycl.jxkg.domain.entity.*;
-import com.ycl.jxkg.domain.other.ExamPaperAnswerUpdate;
 import com.ycl.jxkg.domain.other.KeyValue;
 import com.ycl.jxkg.domain.vo.admin.paper.ExamPaperAnswerPageRequestVO;
 import com.ycl.jxkg.domain.vo.student.exam.ExamPaperSubmitItemVO;
 import com.ycl.jxkg.domain.vo.student.exam.ExamPaperSubmitVO;
 import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageResponseVO;
 import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageVO;
-import com.ycl.jxkg.enums.ExamPaperAnswerStatusEnum;
 import com.ycl.jxkg.enums.ExamPaperTypeEnum;
 import com.ycl.jxkg.enums.QuestionTypeEnum;
-import com.ycl.jxkg.mapper.ExamPaperScoreMapper;
 import com.ycl.jxkg.mapper.ExamPaperMapper;
+import com.ycl.jxkg.mapper.ExamPaperScoreMapper;
 import com.ycl.jxkg.mapper.QuestionMapper;
 import com.ycl.jxkg.mapper.TaskExamCustomerAnswerMapper;
-import com.ycl.jxkg.service.ExamPaperScoreService;
 import com.ycl.jxkg.service.ExamPaperScoreDetailService;
+import com.ycl.jxkg.service.ExamPaperScoreService;
 import com.ycl.jxkg.service.TextContentService;
 import com.ycl.jxkg.utils.DateTimeUtil;
 import com.ycl.jxkg.utils.ExamUtil;
@@ -29,7 +27,6 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -47,7 +44,7 @@
 
 
     @Override
-    public PageInfo<ExamPaperScore> studentPage(ExamPaperAnswerPageVO requestVM) {
+    public PageInfo<ExamPaperAnswerPageResponseVO> studentPage(ExamPaperAnswerPageVO requestVM) {
         return PageHelper.startPage(requestVM.getPageIndex(), requestVM.getPageSize(), "id desc").doSelectPageInfo(() ->
                 examPaperScoreMapper.studentPage(requestVM));
     }
diff --git a/src/main/resources/mapper/ExamPaperScoreMapper.xml b/src/main/resources/mapper/ExamPaperScoreMapper.xml
index 0c4926f..aa4d216 100644
--- a/src/main/resources/mapper/ExamPaperScoreMapper.xml
+++ b/src/main/resources/mapper/ExamPaperScoreMapper.xml
@@ -22,50 +22,55 @@
         <result column="navbar" property="navbar"/>
     </resultMap>
     <sql id="Base_Column_List">
-        id
-        , paper_id, paper_name, paper_type, score,total_score,
-        question_correct, question_count, do_time, status, user_id, exam_id,exam_name,
-        judge_user,submit_time,paper_content,judge_time,navbar
+        id,
+        exam_id,
+        exam_name,
+        paper_id,
+        paper_type,
+        score,
+        total_score,
+        question_correct,
+        question_count,
+        do_time,
+        status,
+        user_id,
+        judge_user,
+        submit_time,
+        paper_content,
+        navbar,
+        judge_time,
+        deleted
     </sql>
 
-    <select id="studentPage" resultMap="BaseResultMap"
-            parameterType="com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageVO">
+    <select id="studentPage" resultType="com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageResponseVO">
         SELECT
         <include refid="Base_Column_List"/>
-        FROM t_exam_paper_answer
+        FROM t_exam_paper_score
         <where>
             and user_id = #{createUser}
+            <if test="examName != null and examName != ''">
+                and INSTR(exam_name, #{examName})
+            </if>
         </where>
     </select>
 
-
-    <select id="getByExamIdUserId" resultType="com.ycl.jxkg.domain.entity.ExamPaperScore">
-        SELECT
-        <include refid="Base_Column_List"/>
-        from t_exam_paper_score
-        <where>
-            and user_id = #{userId}
-            and exam_id = #{examId}
-        </where>
-    </select>
 
     <select id="selectAllCount" resultType="java.lang.Integer">
         SELECT count(*)
         from t_exam_paper_score
     </select>
+
     <select id="selectAllQuestionCount" resultType="java.lang.Integer">
         SELECT sum(question_count)
         from t_exam_paper_score
     </select>
 
     <select id="selectCountByDate" resultType="com.ycl.jxkg.domain.other.KeyValue">
-        SELECT submit_time as name, sum(question_count) as value
-        from
-            (
-            SELECT question_count ,DATE_FORMAT(submit_time, '%Y-%m-%d') as submit_time from t_exam_paper_score
-            WHERE submit_time between #{startTime} and #{endTime}
-            ) a
-        GROUP BY submit_time
+        SELECT create_time as name, COUNT(create_time) as value
+        from (SELECT DATE_FORMAT(create_time, '%Y-%m-%d') as create_time
+              from t_exam_paper_score
+              WHERE create_time between #{startTime} and #{endTime}) a
+        GROUP BY create_time
     </select>
 
 
@@ -80,14 +85,12 @@
 
     <select id="adminPage" resultType="com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageResponseVO">
         SELECT
-        a.id , exam_paper_id, paper_name, paper_type, system_score, user_score, paper_score,
-        question_correct, question_count, do_time, a.status, create_user, a.create_time, b.real_name AS userName
-        FROM t_exam_paper_answer a
-        LEFT JOIN t_user b ON a.create_user = b.id
+        a.*, b.real_name AS userName, c.name as paperName
+        FROM t_exam_paper_score a
+        INNER JOIN t_user b ON a.user_id = b.id AND b.deleted = 0
+        INNER JOIN t_exam_paper c ON a.paper_id = c.id AND c.deleted = 0
         <where>
-            <if test="examPaperId != null">
-                AND paper_id = #{examPaperId}
-            </if>
+            exam_id = #{examId}
             <if test="userName != null and userName != ''">
                 AND INSTR(b.real_name, #{userName})
             </if>
@@ -96,9 +99,9 @@
 
     <select id="pageExamPaper" resultType="com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageResponseVO">
         SELECT
-        a.id,
+        t.id,
         a.name AS paperName,
-        a.score AS systemScore,
+        a.score AS totalScore,
         a.num as questionCount,
         a.subject_id,
         a.paper_type,
@@ -110,9 +113,9 @@
         t.exam_name
         FROM t_exam_paper a
         INNER JOIN t_exam t ON a.id = t.exam_paper_id AND t.deleted = 0
-        LEFT JOIN t_subject b ON a.subject_id = b.id
-        LEFT JOIN t_user c ON t.teacher_id = c.id
-        LEFT JOIN t_exam_paper_answer d ON a.id = d.exam_paper_id
+        LEFT JOIN t_subject b ON a.subject_id = b.id AND b.deleted = 0
+        LEFT JOIN t_user c ON t.teacher_id = c.id AND c.deleted = 0
+        LEFT JOIN t_exam_paper_score d ON t.id = d.exam_id
         LEFT JOIN t_exam_paper_classes e ON a.id = e.exam_paper_id
         LEFT JOIN t_classes_user f ON e.classes_id = f.classes_id
         <where>

--
Gitblit v1.8.0