From 5ff3d0d90f6f46f9d48c6852884edb16ecc78ad3 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期三, 19 六月 2024 13:28:21 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/main/resources/mapper/ExamPaperAnswerMapper.xml |  355 +++++++++++++++++-----------------------------------------
 1 files changed, 105 insertions(+), 250 deletions(-)

diff --git a/src/main/resources/mapper/ExamPaperAnswerMapper.xml b/src/main/resources/mapper/ExamPaperAnswerMapper.xml
index 3b49542..4d36d86 100644
--- a/src/main/resources/mapper/ExamPaperAnswerMapper.xml
+++ b/src/main/resources/mapper/ExamPaperAnswerMapper.xml
@@ -1,266 +1,121 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ycl.jxkg.mapper.ExamPaperAnswerMapper">
-  <resultMap id="BaseResultMap" type="com.ycl.jxkg.domain.ExamPaperAnswer">
-    <id column="id" jdbcType="INTEGER" property="id" />
-    <result column="exam_paper_id" jdbcType="INTEGER" property="examPaperId" />
-    <result column="paper_name" jdbcType="VARCHAR" property="paperName" />
-    <result column="paper_type" jdbcType="INTEGER" property="paperType" />
-    <result column="subject_id" jdbcType="INTEGER" property="subjectId" />
-    <result column="system_score" jdbcType="INTEGER" property="systemScore" />
-    <result column="user_score" jdbcType="INTEGER" property="userScore" />
-    <result column="paper_score" jdbcType="INTEGER" property="paperScore" />
-    <result column="question_correct" jdbcType="INTEGER" property="questionCorrect" />
-    <result column="question_count" jdbcType="INTEGER" property="questionCount" />
-    <result column="do_time" jdbcType="INTEGER" property="doTime" />
-    <result column="status" jdbcType="INTEGER" property="status" />
-    <result column="create_user" jdbcType="INTEGER" property="createUser" />
-    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
-    <result column="task_exam_id" jdbcType="INTEGER" property="taskExamId" />
-  </resultMap>
-  <sql id="Base_Column_List">
-    id, exam_paper_id, paper_name, paper_type, subject_id, system_score, user_score,
+    <resultMap id="BaseResultMap" type="com.ycl.jxkg.domain.entity.ExamPaperAnswer">
+        <id column="id" jdbcType="INTEGER" property="id"/>
+        <result column="exam_paper_id" jdbcType="INTEGER" property="examPaperId"/>
+        <result column="paper_name" jdbcType="VARCHAR" property="paperName"/>
+        <result column="paper_type" jdbcType="INTEGER" property="paperType"/>
+        <result column="subject_id" jdbcType="INTEGER" property="subjectId"/>
+        <result column="system_score" jdbcType="INTEGER" property="systemScore"/>
+        <result column="user_score" jdbcType="INTEGER" property="userScore"/>
+        <result column="paper_score" jdbcType="INTEGER" property="paperScore"/>
+        <result column="question_correct" jdbcType="INTEGER" property="questionCorrect"/>
+        <result column="question_count" jdbcType="INTEGER" property="questionCount"/>
+        <result column="do_time" jdbcType="INTEGER" property="doTime"/>
+        <result column="status" jdbcType="INTEGER" property="status"/>
+        <result column="create_user" jdbcType="INTEGER" property="createUser"/>
+        <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
+        <result column="task_exam_id" jdbcType="INTEGER" property="taskExamId"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        id
+        , exam_paper_id, paper_name, paper_type, subject_id, system_score, user_score,
     paper_score, question_correct, question_count, do_time, status, create_user, create_time,
     task_exam_id
-  </sql>
-  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
-    select
-    <include refid="Base_Column_List" />
-    from t_exam_paper_answer
-    where id = #{id,jdbcType=INTEGER}
-  </select>
-  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
-    delete from t_exam_paper_answer
-    where id = #{id,jdbcType=INTEGER}
-  </delete>
-  <insert id="insert" parameterType="com.ycl.jxkg.domain.ExamPaperAnswer" useGeneratedKeys="true" keyProperty="id">
-    insert into t_exam_paper_answer (id, exam_paper_id, paper_name,
-      paper_type, subject_id, system_score,
-      user_score, paper_score, question_correct,
-      question_count, do_time, status,
-      create_user, create_time, task_exam_id
-      )
-    values (#{id,jdbcType=INTEGER}, #{examPaperId,jdbcType=INTEGER}, #{paperName,jdbcType=VARCHAR},
-      #{paperType,jdbcType=INTEGER}, #{subjectId,jdbcType=INTEGER}, #{systemScore,jdbcType=INTEGER},
-      #{userScore,jdbcType=INTEGER}, #{paperScore,jdbcType=INTEGER}, #{questionCorrect,jdbcType=INTEGER},
-      #{questionCount,jdbcType=INTEGER}, #{doTime,jdbcType=INTEGER}, #{status,jdbcType=INTEGER},
-      #{createUser,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, #{taskExamId,jdbcType=INTEGER}
-      )
-  </insert>
-  <insert id="insertSelective" parameterType="com.ycl.jxkg.domain.ExamPaperAnswer" useGeneratedKeys="true" keyProperty="id">
-    insert into t_exam_paper_answer
-    <trim prefix="(" suffix=")" suffixOverrides=",">
-      <if test="id != null">
-        id,
-      </if>
-      <if test="examPaperId != null">
-        exam_paper_id,
-      </if>
-      <if test="paperName != null">
-        paper_name,
-      </if>
-      <if test="paperType != null">
-        paper_type,
-      </if>
-      <if test="subjectId != null">
-        subject_id,
-      </if>
-      <if test="systemScore != null">
-        system_score,
-      </if>
-      <if test="userScore != null">
-        user_score,
-      </if>
-      <if test="paperScore != null">
-        paper_score,
-      </if>
-      <if test="questionCorrect != null">
-        question_correct,
-      </if>
-      <if test="questionCount != null">
-        question_count,
-      </if>
-      <if test="doTime != null">
-        do_time,
-      </if>
-      <if test="status != null">
-        status,
-      </if>
-      <if test="createUser != null">
-        create_user,
-      </if>
-      <if test="createTime != null">
-        create_time,
-      </if>
-      <if test="taskExamId != null">
-        task_exam_id,
-      </if>
-    </trim>
-    <trim prefix="values (" suffix=")" suffixOverrides=",">
-      <if test="id != null">
-        #{id,jdbcType=INTEGER},
-      </if>
-      <if test="examPaperId != null">
-        #{examPaperId,jdbcType=INTEGER},
-      </if>
-      <if test="paperName != null">
-        #{paperName,jdbcType=VARCHAR},
-      </if>
-      <if test="paperType != null">
-        #{paperType,jdbcType=INTEGER},
-      </if>
-      <if test="subjectId != null">
-        #{subjectId,jdbcType=INTEGER},
-      </if>
-      <if test="systemScore != null">
-        #{systemScore,jdbcType=INTEGER},
-      </if>
-      <if test="userScore != null">
-        #{userScore,jdbcType=INTEGER},
-      </if>
-      <if test="paperScore != null">
-        #{paperScore,jdbcType=INTEGER},
-      </if>
-      <if test="questionCorrect != null">
-        #{questionCorrect,jdbcType=INTEGER},
-      </if>
-      <if test="questionCount != null">
-        #{questionCount,jdbcType=INTEGER},
-      </if>
-      <if test="doTime != null">
-        #{doTime,jdbcType=INTEGER},
-      </if>
-      <if test="status != null">
-        #{status,jdbcType=INTEGER},
-      </if>
-      <if test="createUser != null">
-        #{createUser,jdbcType=INTEGER},
-      </if>
-      <if test="createTime != null">
-        #{createTime,jdbcType=TIMESTAMP},
-      </if>
-      <if test="taskExamId != null">
-        #{taskExamId,jdbcType=INTEGER},
-      </if>
-    </trim>
-  </insert>
-  <update id="updateByPrimaryKeySelective" parameterType="com.ycl.jxkg.domain.ExamPaperAnswer">
-    update t_exam_paper_answer
-    <set>
-      <if test="examPaperId != null">
-        exam_paper_id = #{examPaperId,jdbcType=INTEGER},
-      </if>
-      <if test="paperName != null">
-        paper_name = #{paperName,jdbcType=VARCHAR},
-      </if>
-      <if test="paperType != null">
-        paper_type = #{paperType,jdbcType=INTEGER},
-      </if>
-      <if test="subjectId != null">
-        subject_id = #{subjectId,jdbcType=INTEGER},
-      </if>
-      <if test="systemScore != null">
-        system_score = #{systemScore,jdbcType=INTEGER},
-      </if>
-      <if test="userScore != null">
-        user_score = #{userScore,jdbcType=INTEGER},
-      </if>
-      <if test="paperScore != null">
-        paper_score = #{paperScore,jdbcType=INTEGER},
-      </if>
-      <if test="questionCorrect != null">
-        question_correct = #{questionCorrect,jdbcType=INTEGER},
-      </if>
-      <if test="questionCount != null">
-        question_count = #{questionCount,jdbcType=INTEGER},
-      </if>
-      <if test="doTime != null">
-        do_time = #{doTime,jdbcType=INTEGER},
-      </if>
-      <if test="status != null">
-        status = #{status,jdbcType=INTEGER},
-      </if>
-      <if test="createUser != null">
-        create_user = #{createUser,jdbcType=INTEGER},
-      </if>
-      <if test="createTime != null">
-        create_time = #{createTime,jdbcType=TIMESTAMP},
-      </if>
-      <if test="taskExamId != null">
-        task_exam_id = #{taskExamId,jdbcType=INTEGER},
-      </if>
-    </set>
-    where id = #{id,jdbcType=INTEGER}
-  </update>
-  <update id="updateByPrimaryKey" parameterType="com.ycl.jxkg.domain.ExamPaperAnswer">
-    update t_exam_paper_answer
-    set exam_paper_id = #{examPaperId,jdbcType=INTEGER},
-      paper_name = #{paperName,jdbcType=VARCHAR},
-      paper_type = #{paperType,jdbcType=INTEGER},
-      subject_id = #{subjectId,jdbcType=INTEGER},
-      system_score = #{systemScore,jdbcType=INTEGER},
-      user_score = #{userScore,jdbcType=INTEGER},
-      paper_score = #{paperScore,jdbcType=INTEGER},
-      question_correct = #{questionCorrect,jdbcType=INTEGER},
-      question_count = #{questionCount,jdbcType=INTEGER},
-      do_time = #{doTime,jdbcType=INTEGER},
-      status = #{status,jdbcType=INTEGER},
-      create_user = #{createUser,jdbcType=INTEGER},
-      create_time = #{createTime,jdbcType=TIMESTAMP},
-      task_exam_id = #{taskExamId,jdbcType=INTEGER}
-    where id = #{id,jdbcType=INTEGER}
-  </update>
+    </sql>
+
+    <select id="studentPage" resultMap="BaseResultMap"
+            parameterType="com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageVO">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM t_exam_paper_answer
+        <where>
+            and create_user = #{createUser}
+            <if test="subjectId != null">
+                and subject_id = #{subjectId}
+            </if>
+        </where>
+    </select>
 
 
+    <select id="selectAllCount" resultType="java.lang.Integer">
+        SELECT count(*)
+        from t_exam_paper_answer
+    </select>
 
 
-
-  <select id="studentPage" resultMap="BaseResultMap" parameterType="com.ycl.jxkg.vo.student.exampaper.ExamPaperAnswerPageVO">
-    SELECT
-    <include refid="Base_Column_List"/>
-    FROM t_exam_paper_answer
-    <where>
-        and create_user = #{createUser}
-     <if test="subjectId != null">
-         and subject_id = #{subjectId}
-     </if>
-    </where>
-  </select>
+    <select id="selectCountByDate" resultType="com.ycl.jxkg.domain.other.KeyValue">
+        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_answer
+            WHERE create_time between #{startTime} and #{endTime}
+            ) a
+        GROUP BY create_time
+    </select>
 
 
-  <select id="selectAllCount"  resultType="java.lang.Integer">
-		SELECT count(*) from t_exam_paper_answer
-  </select>
+    <select id="getByPidUid" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"/>
+        from t_exam_paper_answer
+        where exam_paper_id = #{pid} and create_user=#{uid}
+        limit 1
+    </select>
 
 
-  <select id="selectCountByDate"  resultType="com.ycl.jxkg.domain.other.KeyValue">
-		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_answer
-					WHERE  create_time  between  #{startTime}  and  #{endTime}
-				) a
-		GROUP BY create_time
-	</select>
+    <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 DIV 10 AS userScore, paper_score DIV 10 AS paperScore,
+        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
+        <where>
+            <if test="examPaperId != null">
+                AND exam_paper_id = #{examPaperId}
+            </if>
+            <if test="userName != null and userName != ''">
+                AND INSTR(b.real_name, #{userName})
+            </if>
+        </where>
+    </select>
 
-
-  <select id="getByPidUid" resultMap="BaseResultMap">
-    select
-    <include refid="Base_Column_List" />
-    from t_exam_paper_answer
-    where exam_paper_id = #{pid} and create_user=#{uid}
-    limit 1
-  </select>
-
-
-  <select id="adminPage" resultMap="BaseResultMap" parameterType="com.ycl.jxkg.vo.admin.paper.ExamPaperAnswerPageRequestVO">
-    SELECT
-    <include refid="Base_Column_List"/>
-    FROM t_exam_paper_answer
-    <where>
-      <if test="subjectId != null">
-        and subject_id = #{subjectId}
-      </if>
-    </where>
-  </select>
+    <select id="pageExamPaper" resultType="com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageResponseVO">
+        SELECT
+        a.id,
+        a.name AS paperName,
+        a.score DIV 10 AS systemScore,
+        a.subject_id,
+        a.paper_type,
+        a.suggest_time,
+        b.name AS subjectName,
+        c.real_name AS userName,
+        IFNULL(COUNT(d.id), 0) AS personAnswerNum,
+        IFNULL(COUNT(f.id), 0) AS personTotalNum,
+        t.exam_name
+        FROM t_exam_paper a
+        INNER JOIN t_exam t ON a.id = t.exam_paper_id AND t.status = 'finished' AND t.deleted = 0
+        LEFT JOIN t_subject b ON a.subject_id = b.id
+        LEFT JOIN t_user c ON a.create_user = c.id
+        LEFT JOIN t_exam_paper_answer d ON a.id = d.exam_paper_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>
+            a.deleted = 0
+            <if test="subjectId != null and subjectId.size() > 0">
+                AND a.subject_id IN
+                <foreach collection="subjectId" item="item" open="(" separator="," close=")">#{item}</foreach>
+            </if>
+            <if test="name != null and name != ''">
+                AND INSTR(a.name, #{name})
+            </if>
+            <if test="examName != null and examName != ''">
+                AND INSTR(t.exam_name, #{examName})
+            </if>
+        </where>
+        GROUP BY t.id
+        ORDER BY t.id DESC
+    </select>
 
 </mapper>

--
Gitblit v1.8.0