From cc057177b2fb17aee9a173a6adbabdc578fd74c7 Mon Sep 17 00:00:00 2001
From: tangzy <tangzy123456>
Date: Mon, 06 Dec 2021 10:30:44 +0800
Subject: [PATCH] 1.许可

---
 src/main/java/org/springblade/modules/exam/mapper/ExamPaperMapper.xml |  340 ++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 277 insertions(+), 63 deletions(-)

diff --git a/src/main/java/org/springblade/modules/exam/mapper/ExamPaperMapper.xml b/src/main/java/org/springblade/modules/exam/mapper/ExamPaperMapper.xml
index aa9ba40..b9b1948 100644
--- a/src/main/java/org/springblade/modules/exam/mapper/ExamPaperMapper.xml
+++ b/src/main/java/org/springblade/modules/exam/mapper/ExamPaperMapper.xml
@@ -2,77 +2,291 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.springblade.modules.exam.mapper.ExamPaperMapper">
 
-    <!-- 通用查询映射结果 -->
-    <resultMap id="noticeResultMap" type="org.springblade.modules.exam.entity.ExamPaper">
-        <result column="id" property="id"/>
-        <result column="create_user" property="createUser"/>
-        <result column="create_time" property="createTime"/>
-        <result column="update_user" property="updateUser"/>
-        <result column="update_time" property="updateTime"/>
-        <result column="status" property="status"/>
-        <result column="is_deleted" property="isDeleted"/>
-        <result column="release_time" property="releaseTime"/>
-        <result column="title" property="title"/>
-        <result column="content" property="content"/>
+    <resultMap id="PagerSubject" type="org.springblade.modules.exam.vo.ExamPaperSubjectVO"
+               autoMapping="true">
+        <id property="id" column="id"/>
+        <collection property="examExaminationSubjects" javaType="java.util.List"
+                    ofType="org.springblade.modules.exam.entity.ExamExaminationSubject" autoMapping="true">
+            <id property="id" column="tid"/>
+            <association property="examSubjectChoices" javaType="org.springblade.modules.exam.entity.ExamSubjectChoices"
+                         resultMap="brakesResult" autoMapping="true">
+            </association>
+        </collection>
     </resultMap>
 
-    <!-- 通用查询映射结果 -->
-    <resultMap id="noticeVOResultMap" type="org.springblade.modules.exam.vo.ExamPaperVO">
-        <result column="id" property="id"/>
-        <result column="create_user" property="createUser"/>
-        <result column="create_time" property="createTime"/>
-        <result column="update_user" property="updateUser"/>
-        <result column="update_time" property="updateTime"/>
-        <result column="status" property="status"/>
-        <result column="is_deleted" property="isDeleted"/>
-        <result column="release_time" property="releaseTime"/>
-        <result column="title" property="title"/>
-        <result column="content" property="content"/>
+    <resultMap id="PagerSubjectAnswer" type="org.springblade.modules.exam.vo.ExamPaperSubjectVO"
+               autoMapping="true">
+        <id property="id" column="id"/>
+        <collection property="examExaminationSubjects" javaType="java.util.List"
+                    ofType="org.springblade.modules.exam.entity.ExamExaminationSubject" autoMapping="true">
+            <id property="id" column="tid"/>
+            <association property="examSubjectChoices" javaType="org.springblade.modules.exam.entity.ExamSubjectChoices"
+                         autoMapping="true">
+                <id property="id" column="sid"/>
+            </association>
+        </collection>
     </resultMap>
 
-    <select id="topList" resultMap="noticeResultMap">
-        select * from blade_notice limit #{number}
-    </select>
+    <resultMap id="brakesResult" type="org.springblade.modules.exam.vo.ExamSubjectChoicesVO">
+        <id property="id" column="sid"/>
+        <id property="categoryId" column="category_id"/>
+        <id property="subjectName" column="subject_name"/>
+        <id property="choicesType" column="choices_type"/>
+        <id property="score" column="score"/>
+        <id property="analysis" column="analysis"/>
+        <id property="level" column="level"/>
+        <id property="creator" column="creator"/>
+        <id property="createDate" column="create_date"/>
+        <id property="modifier" column="modifier"/>
+        <id property="modifyDate" column="modify_date"/>
+        <id property="delFlag" column="del_flag"/>
+        <id property="applicationCode" column="application_code"/>
+        <id property="tenantCode" column="tenant_code"/>
+    </resultMap>
 
-    <select id="selectNoticePage" resultMap="noticeVOResultMap">
+    <resultMap id="RandomResult" type="org.springblade.modules.exam.vo.ExamSubjectChoicesVO">
+        <id property="id" column="id"/>
+        <id property="categoryId" column="category_id"/>
+        <id property="subjectName" column="subject_name"/>
+        <id property="choicesType" column="choices_type"/>
+        <id property="score" column="score"/>
+        <id property="answer" column=""/>
+        <id property="analysis" column="analysis"/>
+        <id property="level" column="level"/>
+        <id property="creator" column="creator"/>
+        <id property="createDate" column="create_date"/>
+        <id property="modifier" column="modifier"/>
+        <id property="modifyDate" column="modify_date"/>
+        <id property="delFlag" column="del_flag"/>
+        <id property="applicationCode" column="application_code"/>
+        <id property="tenantCode" column="tenant_code"/>
+    </resultMap>
+
+    <select id="queryPagerSubject" resultMap="PagerSubject">
         SELECT
-        n.*,
-        d.dict_value AS categoryName
+        sj.*,
+        tm.id tid,
+        tmxq.id as sid,tmxq.*
         FROM
-        blade_notice n
-        LEFT JOIN
-        ( SELECT * FROM blade_dict WHERE code = 'notice' ) d
-        ON
-        n.category = d.dict_key
-        <if test="notice.deptId!=null and notice.jurisdiction!=null">
-            left join
-            blade_user bu
-            on
-            bu.dept_id = n.dept_id
-        </if>
+        ksxt_exam sj
+        LEFT JOIN exam_examination_subject tm ON sj.id = tm.examination_id
+        LEFT JOIN exam_subject_choices tmxq ON tm.subject_id = tmxq.id
         WHERE
-        n.is_deleted = 0
-        <if test="notice.title!=null">
-            and n.title like concat(concat('%', #{notice.title}), '%')
-        </if>
-        <if test="notice.category!=null">
-            and n.category = #{notice.category}
-        </if>
-        <if test="notice.deptId!=null and notice.jurisdiction!=null">
-            and (n.dept_id = #{notice.deptId} or bu.jurisdiction = #{notice.jurisdiction}
-            or n.dept_id = 1123598813738675201
-            )
-        </if>
-        <if test="notice.deptId!=null and notice.jurisdiction==null">
-            and (n.dept_id = #{notice.deptId} and n.category=2
-            or n.dept_id = 1123598813738675201
-            )
-        </if>
-        <if test="notice.startTime!=null and notice.startTime!=''">
-            and n.release_time &gt;= #{notice.startTime}
-        </if>
-        <if test="notice.endTime!=null and notice.endTime!=''">
-            and n.release_time &lt;= #{notice.endTime}
+        1 = 1
+        <if test="paper.id !=null">
+            and sj.id = #{paper.id}
         </if>
     </select>
+
+    <select id="queryRandomSubject" resultMap="RandomResult" >
+        SELECT * FROM ( SELECT * FROM exam_subject_choices WHERE choices_type = 0 ORDER BY RAND( ) LIMIT 25 ) a UNION ALL
+        SELECT * FROM ( SELECT * FROM exam_subject_choices WHERE choices_type = 1 ORDER BY RAND( ) LIMIT 10 ) b UNION ALL
+        SELECT * FROM ( SELECT * FROM exam_subject_choices WHERE choices_type = 2 ORDER BY RAND( ) LIMIT 20 ) c UNION ALL
+        SELECT * FROM ( SELECT * FROM exam_subject_choices WHERE choices_type = 3 ORDER BY RAND( ) LIMIT 5 ) d
+    </select>
+
+    <select id="selectExamPaperPages" resultType="org.springblade.modules.exam.vo.ExamPaperVO">
+        SELECT
+            *
+        FROM
+            (SELECT
+                sj.*,
+                ( SELECT CASE WHEN COUNT ( * ) > 0 THEN 1 ELSE 0 END FROM sys_apply WHERE user_id = 11 ) AS show
+            FROM
+                ksxt_exam sj ) as s
+        WHERE
+            show = 1
+    </select>
+
+
+    <select id="selectExamPaperPage" resultType="org.springblade.modules.exam.vo.ExamPaperVO">
+        SELECT
+            *
+        FROM
+            ksxt_exam
+        where
+        1=1
+        <if test="paper.examType!=null and paper.examType!=''">
+            and exam_type = #{paper.examType}
+        </if>
+        <if test="paper.examName!=null and paper.examName!=''">
+            and exam_name = #{paper.examName}
+        </if>
+        order by start_time desc
+    </select>
+
+    <select id="PagerSubject" resultMap="PagerSubjectAnswer">
+        SELECT
+        sj.*,
+        tm.id tid,
+        tmxq.id as sid,tmxq.*
+        FROM
+        ksxt_exam sj
+        LEFT JOIN exam_examination_subject tm ON sj.id = tm.examination_id
+        LEFT JOIN exam_subject_choices tmxq ON tm.subject_id = tmxq.id
+        WHERE
+        1 = 1
+        <if test="paper.id !=null">
+            and sj.id = #{paper.id}
+        </if>
+    </select>
+
+    <!--自定义树-->
+    <select id="selectExamPaperPageTree" resultType="org.springblade.modules.exam.entity.ExamPaper">
+        select id,exam_name examName from ksxt_exam
+        where
+        1=1
+        <if test="paper.examName!=null and paper.examName!=''">
+            and exam_name like concat('%', #{paper.examName},'%')
+        </if>
+        <if test="paper.examType!=null">
+            and exam_type = #{paper.examType}
+        </if>
+    </select>
+
+    <delete id="UnbindSubject">
+       delete from exam_examination_subject where examination_id = #{paperid} and subject_id = #{subjectid}
+    </delete>
+
+    <!--查询考试人员考试信息-->
+    <select id="getExamDetail" resultType="org.springblade.modules.exam.vo.ExamPaperVO">
+        (select
+            ke.id,ke.exam_name examName,ke.start_time startTime,ke.end_time endTime,ke.exam_type examType,
+            sa.candidate_no candidateNo,sa.id applyId,
+            bu.real_name realName,bu.sex,bu.cardid idCardNo
+        from
+            ksxt_exam ke
+        left join
+            sys_apply sa
+        on
+            sa.exam_id = ke.id
+        left join
+            blade_user bu
+        on
+            bu.id = sa.user_id
+        where sa.user_id = #{userId}
+        and is_apply = 1
+        and is_exam = 1
+        and sa.apply_status = 2
+        )
+
+        union all
+
+        (select
+            ke.id,ke.exam_name examName,ke.start_time startTime,ke.end_time endTime,ke.exam_type examType,
+            str.candidate_no candidateNo,str.id applyId,
+            bu.real_name realName,bu.sex,bu.cardid idCardNo
+        from
+            ksxt_exam ke
+        left join
+            sys_training_registration str
+        on
+            str.train_exam_id = ke.id
+        left join
+            blade_user bu
+        on
+            bu.id = str.user_id
+        where str.user_id = #{userId}
+        and bu.is_train = 1
+        and is_exam = 1
+        and ke.audit_status = 1
+        and str.cancel = 1
+        and str.audit_status = 1
+        )
+    </select>
+
+    <!--查询前缀相同的准考证数量-->
+    <select id="getCandidateNoCount" resultType="java.lang.Integer">
+        select count(*) from sys_training_registration
+        where 1=1
+        <if test="result!=null and result!=''">
+            and candidate_no like concat('%', #{result},'%')
+        </if>
+    </select>
+
+    <!--查询当前考试已报名的人员培训报名数据集合-->
+    <select id="getTrainList" resultType="org.springblade.modules.training.entity.TrainingRegistration">
+        SELECT
+        str.id
+        FROM
+        sys_training_registration str
+        left join
+        ksxt_exam ke
+        on
+        ke.id = str.train_exam_id
+        left join
+        blade_user bu
+        on
+        bu.id = str.user_id
+        where 1=1
+        and bu.is_train = 1
+        and str.is_exam = 1
+        and str.cancel = 1
+    </select>
+
+    <!--使用考试名称匹配考试信息-->
+    <select id="getExamInfoByExamName" resultType="org.springblade.modules.exam.entity.ExamPaper">
+        SELECT
+            *
+        FROM
+            ksxt_exam
+        where exam_name like concat('%', #{examName},'%')
+    </select>
+
+    <!--查询当前考试的报名人员数量-->
+    <select id="getApplyNumber" resultType="java.lang.Integer">
+        select sum(a) from(
+            select count(*) a from sys_apply
+            where
+            exam_id = #{examPaper.id}
+            union all
+            (
+            select count(*) a from sys_training_registration
+            where
+            train_exam_id = #{examPaper.id}
+            )
+        ) c
+    </select>
+
+    <!--查询当前考试的报名人员数量,模拟考试-->
+    <select id="getTrainNumber" resultType="java.lang.Integer">
+        select count(*) from sys_training_registration
+        where
+        train_exam_id = #{examPaper.id}
+        and cancel = 1
+    </select>
+
+    <!--根据用户id查询报名信息-->
+    <select id="getApplyDetail" resultType="org.springblade.modules.apply.entity.Apply">
+        (select
+            sa.id as id
+        from
+            sys_apply sa
+        left join
+            blade_user bu
+        on
+            bu.id = sa.user_id
+        where sa.user_id = #{userId}
+        and is_apply = 1
+        and is_exam = 1
+        and sa.apply_status = 2
+        )
+
+        union all
+
+        (select
+            str.id as id
+        from
+            sys_training_registration str
+        left join
+            blade_user bu
+        on
+            bu.id = str.user_id
+        where str.user_id = #{userId}
+        and bu.is_train = 1
+        and is_exam = 1
+        and str.cancel = 1
+        )
+    </select>
+
 </mapper>

--
Gitblit v1.9.3