Переглянути джерело

update 更新获取报名信息

周箭河 5 роки тому
батько
коміт
61ecd0a1dd

+ 4 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/ExamRegistrationDao.java

@@ -7,6 +7,7 @@ import com.keao.edu.user.dto.ExamRegistrationDto;
 import com.keao.edu.user.dto.ExamRegistrationRoomDto;
 import com.keao.edu.user.dto.ExamRegistrationStatisticsDto;
 import com.keao.edu.user.entity.ExamRegistration;
+import com.keao.edu.user.enums.StudentRegistrationStatusEnum;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -137,6 +138,8 @@ public interface ExamRegistrationDao extends BaseDAO<Long, ExamRegistration> {
      * @param level
      * @return
      */
-    ExamRegistration getRegistration(@Param("examId") Long examId, @Param("studentId") Integer studentId, @Param("subjectId") Integer subjectId, @Param("level") Integer level);
+    ExamRegistration getRegistration(@Param("examId") Long examId, @Param("studentId") Integer studentId,
+                                     @Param("subjectId") Integer subjectId, @Param("level") Integer level,
+                                     @Param("statusEnumList") List<StudentRegistrationStatusEnum> statusEnumList);
 
 }

+ 2 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamRegistrationPaymentServiceImpl.java

@@ -151,9 +151,10 @@ public class ExamRegistrationPaymentServiceImpl extends BaseServiceImpl<Long, Ex
     public Boolean closeOrder(String orderNo) {
         ExamRegistrationPayment order = examRegistrationPaymentDao.getByOrderNo(orderNo);
         if (!order.getTransStatus().equals(TransStatusEnum.ING)) {
-            throw new BizException("订单不是待支付状态,请重新报名");
+            throw new BizException("订单不是待支付状态,不能关闭");
         }
         Date nowDate = new Date();
+        order.setMemo("用户主动放弃支付");
         order.setTransStatus(TransStatusEnum.CLOSE);
         order.setUpdateTime(nowDate);
         if (examRegistrationPaymentDao.update(order) <= 0) {

+ 17 - 12
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamRegistrationServiceImpl.java

@@ -83,8 +83,15 @@ public class ExamRegistrationServiceImpl extends BaseServiceImpl<Long, ExamRegis
             throw new BizException("机构不存在");
         }
 
-        ExamRegistration registration = examRegistrationDao.getRegistration(examinationBasic.getId(), examRegistration.getStudentId(), examRegistration.getSubjectId(), examSubjectSong.getLevel());
-        if(registration != null && !registration.getStatus().equals(StudentRegistrationStatusEnum.PAY_WAIT)){
+        List<StudentRegistrationStatusEnum> statusEnumList = new ArrayList<>();
+        statusEnumList.add(StudentRegistrationStatusEnum.AUDIT_WAIT);
+        statusEnumList.add(StudentRegistrationStatusEnum.AUDIT_REJECT);
+        statusEnumList.add(StudentRegistrationStatusEnum.AUDIT_PASS);
+
+        ExamRegistration registration = examRegistrationDao.getRegistration(examinationBasic.getId(),
+                examRegistration.getStudentId(), examRegistration.getSubjectId(), examSubjectSong.getLevel(),
+                statusEnumList);
+        if (registration != null) {
             throw new BizException("该考级相同专业及等级您已报名,请勿重复报名");
         }
 
@@ -112,15 +119,13 @@ public class ExamRegistrationServiceImpl extends BaseServiceImpl<Long, ExamRegis
         examRegistration.setCreateTime(nowDate);
         examRegistration.setUpdateTime(nowDate);
 
-        ExamRegistrationPayment examIngOrder = examRegistrationPaymentService.getExamIngOrder(examinationBasic.getId(), examRegistration.getStudentId());
-        if (examIngOrder != null) {
-            examIngOrder.setTransStatus(TransStatusEnum.CLOSE);
-            examIngOrder.setMemo("用户主动放弃支付");
-            if (examRegistrationPaymentService.update(examIngOrder) <= 0) {
-                throw new BizException("未支付订单关闭失败");
-            }
-            ExamRegistration examReg = examRegistrationDao.get(examIngOrder.getExamRegistrationId());
-            examRegistration.setId(examReg.getId());
+        statusEnumList.clear();
+        statusEnumList.add(StudentRegistrationStatusEnum.AUDIT_WAIT);
+        registration = examRegistrationDao.getRegistration(examinationBasic.getId(),
+                examRegistration.getStudentId(), null, null,
+                statusEnumList);
+        if (registration != null) {
+            examRegistration.setId(registration.getId());
             examRegistrationDao.update(examRegistration);
         } else {
             examRegistrationDao.insert(examRegistration);
@@ -163,7 +168,7 @@ public class ExamRegistrationServiceImpl extends BaseServiceImpl<Long, ExamRegis
         Map<String, Object> params = new HashMap<String, Object>();
         MapUtil.populateMap(params, queryInfo);
 
-        if(Objects.nonNull(queryInfo.getExamId())){
+        if (Objects.nonNull(queryInfo.getExamId())) {
             List<Integer> nextLevelOrganIds = organizationService.getChildOrganIds(queryInfo.getOrganId(), true);
             params.put("organIds", nextLevelOrganIds);
             params.put("organId", null);

+ 450 - 400
edu-user/edu-user-server/src/main/resources/config/mybatis/ExamRegistrationMapper.xml

@@ -6,432 +6,482 @@
 -->
 <mapper namespace="com.keao.edu.user.dao.ExamRegistrationDao">
 
-	<resultMap type="com.keao.edu.user.entity.ExamRegistration" id="ExamRegistration">
-		<id column="id_" property="id" />
-		<result column="examination_basic_id_" property="examinationBasicId" />
-		<result column="student_id_" property="studentId" />
-		<result column="organ_id_" property="organId" />
-		<result column="subject_id_" property="subjectId" />
-		<result column="level_" property="level" />
-		<result column="level_fee_" property="levelFee" />
-		<result column="song_json_" property="songJson" />
-		<result column="last_exam_level_" property="lastExamLevel" />
-		<result column="last_exam_certificate_url_" property="lastExamCertificateUrl" />
-		<result column="exam_music_theory_level_" property="examMusicTheoryLevel" />
-		<result column="theory_level_fee_" property="theoryLevelFee" />
-		<result column="last_music_theory_level_" property="lastMusicTheoryLevel" />
-		<result column="last_music_theory_certificate_url_" property="lastMusicTheoryCertificateUrl" />
-		<result column="adviser_name_" property="adviserName" />
-		<result column="adviser_phone_" property="adviserPhone" />
-		<result column="card_no_" property="cardNo" />
-		<result column="status_" property="status" />
-		<result column="create_time_" property="createTime" />
-		<result column="update_time_" property="updateTime" />
-		<result column="tenant_id_" property="tenantId" />
-		<result column="memo_" property="memo" />
-		<association property="sysUser" columnPrefix="sys_user_" resultMap="com.keao.edu.user.dao.StudentDao.Student"/>
-		<association property="subject" columnPrefix="subject_" resultMap="com.keao.edu.user.dao.SubjectDao.Subject"/>
-		<association property="examinationBasic" columnPrefix="examination_basic_" resultMap="com.keao.edu.user.dao.ExaminationBasicDao.ExaminationBasic"/>
-	</resultMap>
+    <resultMap type="com.keao.edu.user.entity.ExamRegistration" id="ExamRegistration">
+        <id column="id_" property="id"/>
+        <result column="examination_basic_id_" property="examinationBasicId"/>
+        <result column="student_id_" property="studentId"/>
+        <result column="organ_id_" property="organId"/>
+        <result column="subject_id_" property="subjectId"/>
+        <result column="level_" property="level"/>
+        <result column="level_fee_" property="levelFee"/>
+        <result column="song_json_" property="songJson"/>
+        <result column="last_exam_level_" property="lastExamLevel"/>
+        <result column="last_exam_certificate_url_" property="lastExamCertificateUrl"/>
+        <result column="exam_music_theory_level_" property="examMusicTheoryLevel"/>
+        <result column="theory_level_fee_" property="theoryLevelFee"/>
+        <result column="last_music_theory_level_" property="lastMusicTheoryLevel"/>
+        <result column="last_music_theory_certificate_url_" property="lastMusicTheoryCertificateUrl"/>
+        <result column="adviser_name_" property="adviserName"/>
+        <result column="adviser_phone_" property="adviserPhone"/>
+        <result column="card_no_" property="cardNo"/>
+        <result column="status_" property="status"/>
+        <result column="create_time_" property="createTime"/>
+        <result column="update_time_" property="updateTime"/>
+        <result column="tenant_id_" property="tenantId"/>
+        <result column="memo_" property="memo"/>
+        <association property="sysUser" columnPrefix="sys_user_" resultMap="com.keao.edu.user.dao.StudentDao.Student"/>
+        <association property="subject" columnPrefix="subject_" resultMap="com.keao.edu.user.dao.SubjectDao.Subject"/>
+        <association property="examinationBasic" columnPrefix="examination_basic_"
+                     resultMap="com.keao.edu.user.dao.ExaminationBasicDao.ExaminationBasic"/>
+    </resultMap>
 
-	<resultMap id="ExamRegistrationRoomDto" type="com.keao.edu.user.dto.ExamRegistrationRoomDto" extends="ExamRegistration">
-		<result column="exam_room_id_" property="examRoomId"/>
-		<result column="exam_start_time_" property="examStartTime"/>
-		<result column="exam_end_time_" property="examEndTime"/>
-	</resultMap>
+    <resultMap id="ExamRegistrationRoomDto" type="com.keao.edu.user.dto.ExamRegistrationRoomDto"
+               extends="ExamRegistration">
+        <result column="exam_room_id_" property="examRoomId"/>
+        <result column="exam_start_time_" property="examStartTime"/>
+        <result column="exam_end_time_" property="examEndTime"/>
+    </resultMap>
 
-	<!-- 根据主键查询一条记录 -->
-	<select id="get" resultMap="ExamRegistration" >
-		SELECT * FROM exam_registration WHERE id_ = #{id}
-	</select>
+    <!-- 根据主键查询一条记录 -->
+    <select id="get" resultMap="ExamRegistration">
+        SELECT *
+        FROM exam_registration
+        WHERE id_ = #{id}
+    </select>
 
-	<!-- 全查询 -->
-	<select id="findAll" resultMap="ExamRegistration">
-		SELECT * FROM exam_registration ORDER BY id_
-	</select>
+    <!-- 全查询 -->
+    <select id="findAll" resultMap="ExamRegistration">
+        SELECT *
+        FROM exam_registration
+        ORDER BY id_
+    </select>
 
-	<!-- 向数据库增加一条记录 -->
-	<insert id="insert" parameterType="com.keao.edu.user.entity.ExamRegistration" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		INSERT INTO  exam_registration (examination_basic_id_, student_id_, organ_id_,subject_id_, level_, level_fee_,
-		song_json_, last_exam_level_, last_exam_certificate_url_,exam_music_theory_level_, theory_level_fee_,
-		last_music_theory_level_,last_music_theory_certificate_url_, adviser_name_,adviser_phone_, card_no_, status_,
-		create_time_, update_time_, tenant_id_,memo_)
-		VALUES (#{examinationBasicId}, #{studentId}, #{organId}, #{subjectId}, #{level}, #{levelFee}, #{songJson},
-		#{lastExamLevel}, #{lastExamCertificateUrl}, #{examMusicTheoryLevel}, #{theoryLevelFee}, #{lastMusicTheoryLevel},
-		#{lastMusicTheoryCertificateUrl}, #{adviserName}, #{adviserPhone}, #{cardNo}, #{status},#{createTime},
-		#{updateTime}, #{tenantId}, #{memo})
-	</insert>
+    <!-- 向数据库增加一条记录 -->
+    <insert id="insert" parameterType="com.keao.edu.user.entity.ExamRegistration" useGeneratedKeys="true" keyColumn="id"
+            keyProperty="id">
+        INSERT INTO exam_registration (examination_basic_id_, student_id_, organ_id_, subject_id_, level_, level_fee_,
+                                       song_json_, last_exam_level_, last_exam_certificate_url_,
+                                       exam_music_theory_level_, theory_level_fee_,
+                                       last_music_theory_level_, last_music_theory_certificate_url_, adviser_name_,
+                                       adviser_phone_, card_no_, status_,
+                                       create_time_, update_time_, tenant_id_, memo_)
+        VALUES (#{examinationBasicId}, #{studentId}, #{organId}, #{subjectId}, #{level}, #{levelFee}, #{songJson},
+                #{lastExamLevel}, #{lastExamCertificateUrl}, #{examMusicTheoryLevel}, #{theoryLevelFee},
+                #{lastMusicTheoryLevel},
+                #{lastMusicTheoryCertificateUrl}, #{adviserName}, #{adviserPhone}, #{cardNo}, #{status}, #{createTime},
+                #{updateTime}, #{tenantId}, #{memo})
+    </insert>
 
-	<!-- 根据主键查询一条记录 -->
-	<update id="update" parameterType="com.keao.edu.user.entity.ExamRegistration">
-		UPDATE exam_registration
-		<set>
-			<if test="examinationBasicId != null">
-				examination_basic_id_ = #{examinationBasicId},
-			</if>
-			<if test="studentId != null != null">
-				student_id_ = #{studentId},
-			</if>
-			<if test="organId != null">
-				organ_id_ = #{organId},
-			</if>
-			<if test="subjectId != null">
-				subject_id_ = #{subjectId},
-			</if>
-			<if test="level != null">
-				level_ = #{level},
-			</if>
-			<if test="levelFee != null">
-				level_fee_ = #{levelFee},
-			</if>
-			<if test="songJson != null">
-				song_json_ = #{songJson},
-			</if>
-			<if test="lastExamLevel != null">
-				last_exam_level_ = #{lastExamLevel},
-			</if>
-			<if test="lastExamCertificateUrl != null">
-				last_exam_certificate_url_ = #{lastExamCertificateUrl},
-			</if>
-			<if test="examMusicTheoryLevel!= null">
-				exam_music_theory_level_ = #{examMusicTheoryLevel},
-			</if>
-			<if test="theoryLevelFee!= null">
-				theory_level_fee_ = #{theoryLevelFee},
-			</if>
-			<if test="lastMusicTheoryLevel != null">
-				last_music_theory_level_ = #{lastMusicTheoryLevel},
-			</if>
-			<if test="lastMusicTheoryCertificateUrl != null">
-				last_music_theory_certificate_url_ = #{lastMusicTheoryCertificateUrl},
-			</if>
-			<if test="adviserName != null">
-				adviser_name_ = #{adviserName},
-			</if>
-			<if test="adviserPhone != null">
-				adviser_phone_ = #{adviserPhone},
-			</if>
-			<if test="cardNo!=null">
-				card_no_ =#{cardNo},
-			</if>
-			<if test="status!=null">
-				status_ = #{status,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},
-			</if>
-			<if test="tenantId != null">
-				tenant_id_ = #{tenantId},
-			</if>
-			<if test="createTime != null">
-				create_time_ = #{createTime},
-			</if>
-			<if test="memo!=null">
-				memo_ = #{memo},
-			</if>
-			update_time_ = NOW()
-		</set>
-		WHERE id_ = #{id}
-	</update>
+    <!-- 根据主键查询一条记录 -->
+    <update id="update" parameterType="com.keao.edu.user.entity.ExamRegistration">
+        UPDATE exam_registration
+        <set>
+            <if test="examinationBasicId != null">
+                examination_basic_id_ = #{examinationBasicId},
+            </if>
+            <if test="studentId != null != null">
+                student_id_ = #{studentId},
+            </if>
+            <if test="organId != null">
+                organ_id_ = #{organId},
+            </if>
+            <if test="subjectId != null">
+                subject_id_ = #{subjectId},
+            </if>
+            <if test="level != null">
+                level_ = #{level},
+            </if>
+            <if test="levelFee != null">
+                level_fee_ = #{levelFee},
+            </if>
+            <if test="songJson != null">
+                song_json_ = #{songJson},
+            </if>
+            <if test="lastExamLevel != null">
+                last_exam_level_ = #{lastExamLevel},
+            </if>
+            <if test="lastExamCertificateUrl != null">
+                last_exam_certificate_url_ = #{lastExamCertificateUrl},
+            </if>
+            <if test="examMusicTheoryLevel!= null">
+                exam_music_theory_level_ = #{examMusicTheoryLevel},
+            </if>
+            <if test="theoryLevelFee!= null">
+                theory_level_fee_ = #{theoryLevelFee},
+            </if>
+            <if test="lastMusicTheoryLevel != null">
+                last_music_theory_level_ = #{lastMusicTheoryLevel},
+            </if>
+            <if test="lastMusicTheoryCertificateUrl != null">
+                last_music_theory_certificate_url_ = #{lastMusicTheoryCertificateUrl},
+            </if>
+            <if test="adviserName != null">
+                adviser_name_ = #{adviserName},
+            </if>
+            <if test="adviserPhone != null">
+                adviser_phone_ = #{adviserPhone},
+            </if>
+            <if test="cardNo!=null">
+                card_no_ =#{cardNo},
+            </if>
+            <if test="status!=null">
+                status_ = #{status,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler},
+            </if>
+            <if test="tenantId != null">
+                tenant_id_ = #{tenantId},
+            </if>
+            <if test="createTime != null">
+                create_time_ = #{createTime},
+            </if>
+            <if test="memo!=null">
+                memo_ = #{memo},
+            </if>
+            update_time_ = NOW()
+        </set>
+        WHERE id_ = #{id}
+    </update>
 
-	<!-- 根据主键删除一条记录 -->
-	<delete id="delete" >
-		DELETE FROM exam_registration WHERE id_ = #{id}
-	</delete>
+    <!-- 根据主键删除一条记录 -->
+    <delete id="delete">
+        DELETE
+        FROM exam_registration
+        WHERE id_ = #{id}
+    </delete>
 
-	<sql id="queryCondition">
-		<where>
-			<if test="organIds!=null">
-				AND er.organ_id_ IN
-				<foreach collection="organIds" item="organId" separator="," open="(" close=")">
-					#{organId}
-				</foreach>
-			</if>
-			<if test="examId!=null">
-				AND er.examination_basic_id_ = #{examId}
-			</if>
-			<if test="organId != null">
-				AND er.organ_id_ = #{organId}
-			</if>
-			<if test="subjectId!=null">
-				AND er.subject_id_ = #{subjectId}
-			</if>
-			<if test="level!=null">
-				AND er.level_ = #{level}
-			</if>
-			<if test="status!=null">
-				AND er.status_ = #{status,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler}
-			</if>
-		</where>
-	</sql>
+    <sql id="queryCondition">
+        <where>
+            <if test="organIds!=null">
+                AND er.organ_id_ IN
+                <foreach collection="organIds" item="organId" separator="," open="(" close=")">
+                    #{organId}
+                </foreach>
+            </if>
+            <if test="examId!=null">
+                AND er.examination_basic_id_ = #{examId}
+            </if>
+            <if test="organId != null">
+                AND er.organ_id_ = #{organId}
+            </if>
+            <if test="subjectId!=null">
+                AND er.subject_id_ = #{subjectId}
+            </if>
+            <if test="level!=null">
+                AND er.level_ = #{level}
+            </if>
+            <if test="status!=null">
+                AND er.status_ = #{status,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler}
+            </if>
+        </where>
+    </sql>
 
-	<!-- 分页查询 -->
-	<select id="queryPage" resultMap="ExamRegistration" parameterType="map">
-		SELECT
-			er.id_,
-			er.examination_basic_id_,
-			er.exam_music_theory_level_,
-			er.card_no_,
-			er.student_id_,
-			er.memo_,
-			su.real_name_ sys_user_real_name_,
-			er.last_exam_certificate_url_,
-			er.last_music_theory_certificate_url_,
-			er.level_fee_,
-			er.theory_level_fee_,
-			er.organ_id_,
-			er.subject_id_,
-			er.level_,
-			erp.trans_amount_,
-			er.status_,
-			er.create_time_
-		FROM
-			exam_registration er
-			LEFT JOIN sys_user su ON er.student_id_ = su.id_
-			LEFT JOIN exam_registration_payment erp ON er.id_ = erp.exam_registration_id_
-		<include refid="queryCondition"/>
-		ORDER BY er.id_
-		<include refid="global.limit"/>
-	</select>
+    <!-- 分页查询 -->
+    <select id="queryPage" resultMap="ExamRegistration" parameterType="map">
+        SELECT
+        er.id_,
+        er.examination_basic_id_,
+        er.exam_music_theory_level_,
+        er.card_no_,
+        er.student_id_,
+        er.memo_,
+        su.real_name_ sys_user_real_name_,
+        er.last_exam_certificate_url_,
+        er.last_music_theory_certificate_url_,
+        er.level_fee_,
+        er.theory_level_fee_,
+        er.organ_id_,
+        er.subject_id_,
+        er.level_,
+        erp.trans_amount_,
+        er.status_,
+        er.create_time_
+        FROM
+        exam_registration er
+        LEFT JOIN sys_user su ON er.student_id_ = su.id_
+        LEFT JOIN exam_registration_payment erp ON er.id_ = erp.exam_registration_id_
+        <include refid="queryCondition"/>
+        ORDER BY er.id_
+        <include refid="global.limit"/>
+    </select>
 
-	<!-- 查询当前表的总记录数 -->
-	<select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM exam_registration er
-		<include refid="queryCondition"/>
-	</select>
+    <!-- 查询当前表的总记录数 -->
+    <select id="queryCount" resultType="int">
+        SELECT COUNT(*) FROM exam_registration er
+        <include refid="queryCondition"/>
+    </select>
 
-	<sql id="queryExamRegistCondition">
-		<where>
-			<if test="organIds!=null">
-				AND er.organ_id_ IN
-				<foreach collection="organIds" item="organId" separator="," open="(" close=")">
-					#{organId}
-				</foreach>
-			</if>
-			<if test="examId!=null">
-				AND er.examination_basic_id_ = #{examId}
-			</if>
-			<if test="organId!=null">
-				AND er.organ_id_ = #{organId}
-			</if>
-			<if test="subjectId!=null">
-				AND er.subject_id_ = #{subjectId}
-			</if>
-			<if test="level!=null">
-				AND er.level_ = #{level}
-			</if>
-			<if test="status!=null">
-				AND er.status_ = #{status,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler}
-			</if>
-			<if test="inRoom!=null and inRoom=0">
-				AND ersr.exam_room_id_ IS NULL
-			</if>
-			<if test="inRoom!=null and inRoom=1">
-				AND ersr.exam_room_id_ IS NOT NULL
-			</if>
-		</where>
-	</sql>
+    <sql id="queryExamRegistCondition">
+        <where>
+            <if test="organIds!=null">
+                AND er.organ_id_ IN
+                <foreach collection="organIds" item="organId" separator="," open="(" close=")">
+                    #{organId}
+                </foreach>
+            </if>
+            <if test="examId!=null">
+                AND er.examination_basic_id_ = #{examId}
+            </if>
+            <if test="organId!=null">
+                AND er.organ_id_ = #{organId}
+            </if>
+            <if test="subjectId!=null">
+                AND er.subject_id_ = #{subjectId}
+            </if>
+            <if test="level!=null">
+                AND er.level_ = #{level}
+            </if>
+            <if test="status!=null">
+                AND er.status_ = #{status,typeHandler=com.keao.edu.common.dal.CustomEnumTypeHandler}
+            </if>
+            <if test="inRoom!=null and inRoom=0">
+                AND ersr.exam_room_id_ IS NULL
+            </if>
+            <if test="inRoom!=null and inRoom=1">
+                AND ersr.exam_room_id_ IS NOT NULL
+            </if>
+        </where>
+    </sql>
 
-	<select id="queryExamRegist" resultMap="ExamRegistrationRoomDto" parameterType="map">
-		SELECT
-			er.id_,
-			er.examination_basic_id_,
-			er.exam_music_theory_level_,
-			er.card_no_,
-			er.student_id_,
-			er.memo_,
-			su.real_name_ sys_user_real_name_,
-			su.phone_ sys_user_phone_,
-			er.last_exam_certificate_url_,
-			er.last_music_theory_certificate_url_,
-			er.level_fee_,
-			er.theory_level_fee_,
-			er.song_json_,
-			er.organ_id_,
-			er.subject_id_,
-			er.level_,
-			erp.trans_amount_,
-			er.status_,
-			er.create_time_,
-			ersr.exam_room_id_,
-			ero.exam_start_time_,
-			ero.exam_end_time_
-		FROM
-			exam_registration er
-			LEFT JOIN sys_user su ON er.student_id_ = su.id_
-			LEFT JOIN exam_registration_payment erp ON er.id_ = erp.exam_registration_id_
-			LEFT JOIN exam_room_student_relation ersr ON ersr.exam_registration_id_ = er.id_
-			LEFT JOIN exam_room ero ON ero.id_ = ersr.exam_room_id_
-		<include refid="queryCondition"/>
-		ORDER BY er.id_ DESC
-		<include refid="global.limit"/>
-	</select>
+    <select id="queryExamRegist" resultMap="ExamRegistrationRoomDto" parameterType="map">
+        SELECT
+        er.id_,
+        er.examination_basic_id_,
+        er.exam_music_theory_level_,
+        er.card_no_,
+        er.student_id_,
+        er.memo_,
+        su.real_name_ sys_user_real_name_,
+        su.phone_ sys_user_phone_,
+        er.last_exam_certificate_url_,
+        er.last_music_theory_certificate_url_,
+        er.level_fee_,
+        er.theory_level_fee_,
+        er.song_json_,
+        er.organ_id_,
+        er.subject_id_,
+        er.level_,
+        erp.trans_amount_,
+        er.status_,
+        er.create_time_,
+        ersr.exam_room_id_,
+        ero.exam_start_time_,
+        ero.exam_end_time_
+        FROM
+        exam_registration er
+        LEFT JOIN sys_user su ON er.student_id_ = su.id_
+        LEFT JOIN exam_registration_payment erp ON er.id_ = erp.exam_registration_id_
+        LEFT JOIN exam_room_student_relation ersr ON ersr.exam_registration_id_ = er.id_
+        LEFT JOIN exam_room ero ON ero.id_ = ersr.exam_room_id_
+        <include refid="queryCondition"/>
+        ORDER BY er.id_ DESC
+        <include refid="global.limit"/>
+    </select>
 
-	<select id="countExamRegist" resultType="int">
-		SELECT COUNT(*) FROM exam_registration er
-		LEFT JOIN exam_room_student_relation ersr ON ersr.exam_registration_id_ = er.id_
-		<include refid="queryCondition"/>
-	</select>
+    <select id="countExamRegist" resultType="int">
+        SELECT COUNT(*) FROM exam_registration er
+        LEFT JOIN exam_room_student_relation ersr ON ersr.exam_registration_id_ = er.id_
+        <include refid="queryCondition"/>
+    </select>
 
     <select id="countWithoutExamRoomStudentNum" resultType="int">
-		SELECT
-			COUNT(ersr.id_)
-		FROM
-			exam_registration er
-		LEFT JOIN exam_room_student_relation ersr ON ersr.student_id_ = er.student_id_
-		WHERE 1=1
-		<if test="organIds!=null">
-			AND er.organ_id_ IN
-			<foreach collection="organIds" item="organI" separator="," open="(" close=")">
-				#{organI}
-			</foreach>
-		</if>
-		AND er.examination_basic_id_ = #{examId}
-		AND ersr.id_ IS NULL
-	</select>
+        SELECT
+        COUNT(ersr.id_)
+        FROM
+        exam_registration er
+        LEFT JOIN exam_room_student_relation ersr ON ersr.student_id_ = er.student_id_
+        WHERE 1=1
+        <if test="organIds!=null">
+            AND er.organ_id_ IN
+            <foreach collection="organIds" item="organI" separator="," open="(" close=")">
+                #{organI}
+            </foreach>
+        </if>
+        AND er.examination_basic_id_ = #{examId}
+        AND ersr.id_ IS NULL
+    </select>
 
-	<select id="countInExamRoomStudentNum" resultType="int">
-		SELECT
-			COUNT(ersr.id_)
-		FROM
-			exam_room_student_relation ersr
-		LEFT JOIN exam_registration er ON ersr.exam_registration_id_ = er.id_
-		WHERE 1=1
-		<if test="organIds!=null">
-			AND er.organ_id_ IN
-			<foreach collection="organIds" item="organI" separator="," open="(" close=")">
-				#{organI}
-			</foreach>
-		</if>
-		AND ersr.examination_basic_id_ = #{examId}
-	</select>
+    <select id="countInExamRoomStudentNum" resultType="int">
+        SELECT
+        COUNT(ersr.id_)
+        FROM
+        exam_room_student_relation ersr
+        LEFT JOIN exam_registration er ON ersr.exam_registration_id_ = er.id_
+        WHERE 1=1
+        <if test="organIds!=null">
+            AND er.organ_id_ IN
+            <foreach collection="organIds" item="organI" separator="," open="(" close=")">
+                #{organI}
+            </foreach>
+        </if>
+        AND ersr.examination_basic_id_ = #{examId}
+    </select>
 
-	<resultMap id="ExamRegistrationStatisticsDto" type="com.keao.edu.user.dto.ExamRegistrationStatisticsDto">
-		<result property="totalRegistrationStudentNum" column="totalRegistrationStudentNum"/>
-		<result property="childOrganRegistrationStudentNum" column="childOrganRegistrationStudentNum"/>
-		<result property="waitAuditStudentNum" column="waitAuditStudentNum"/>
-		<result property="refundedStudentNum" column="refundedStudentNum"/>
-	</resultMap>
+    <resultMap id="ExamRegistrationStatisticsDto" type="com.keao.edu.user.dto.ExamRegistrationStatisticsDto">
+        <result property="totalRegistrationStudentNum" column="totalRegistrationStudentNum"/>
+        <result property="childOrganRegistrationStudentNum" column="childOrganRegistrationStudentNum"/>
+        <result property="waitAuditStudentNum" column="waitAuditStudentNum"/>
+        <result property="refundedStudentNum" column="refundedStudentNum"/>
+    </resultMap>
 
     <select id="getExamRegistrationStaticsInfo" resultMap="ExamRegistrationStatisticsDto">
-		SELECT
-			SUM( CASE WHEN er.organ_id_ = #{selfOrganId} THEN 1 ELSE 0 END ) totalRegistrationStudentNum,
-			SUM( CASE WHEN er.organ_id_ != #{selfOrganId} THEN 1 ELSE 0 END ) childOrganRegistrationStudentNum,
-			SUM( CASE WHEN er.status_ = 'AUDIT_WAIT' THEN 1 ELSE 0 END ) waitAuditStudentNum,
-			SUM( CASE WHEN er.status_ = 'REFUNDED' THEN 1 ELSE 0 END ) refundedStudentNum
-		FROM
-			exam_registration er
-		WHERE
-			er.examination_basic_id_ = #{examId}
-			<if test="organIds!=null">
-				AND er.organ_id_ IN
-				<foreach collection="organIds" item="organId" separator="," open="(" close=")">
-					#{organId}
-				</foreach>
-			</if>
+        SELECT
+        SUM( CASE WHEN er.organ_id_ = #{selfOrganId} THEN 1 ELSE 0 END ) totalRegistrationStudentNum,
+        SUM( CASE WHEN er.organ_id_ != #{selfOrganId} THEN 1 ELSE 0 END ) childOrganRegistrationStudentNum,
+        SUM( CASE WHEN er.status_ = 'AUDIT_WAIT' THEN 1 ELSE 0 END ) waitAuditStudentNum,
+        SUM( CASE WHEN er.status_ = 'REFUNDED' THEN 1 ELSE 0 END ) refundedStudentNum
+        FROM
+        exam_registration er
+        WHERE
+        er.examination_basic_id_ = #{examId}
+        <if test="organIds!=null">
+            AND er.organ_id_ IN
+            <foreach collection="organIds" item="organId" separator="," open="(" close=")">
+                #{organId}
+            </foreach>
+        </if>
     </select>
 
-	<select id="countTotalRegistrationStudentNumWithExam" resultType="int">
-		SELECT
-			COUNT(er.id_)
-		FROM
-		exam_registration er
-		WHERE 1=1
-		<if test="organIds!=null">
-			AND er.organ_id_ IN
-			<foreach collection="organIds" item="organI" separator="," open="(" close=")">
-				#{organI}
-			</foreach>
-		</if>
-		AND er.examination_basic_id_ = #{examId}
-		AND er.status_ != ''
-	</select>
+    <select id="countTotalRegistrationStudentNumWithExam" resultType="int">
+        SELECT
+        COUNT(er.id_)
+        FROM
+        exam_registration er
+        WHERE 1=1
+        <if test="organIds!=null">
+            AND er.organ_id_ IN
+            <foreach collection="organIds" item="organI" separator="," open="(" close=")">
+                #{organI}
+            </foreach>
+        </if>
+        AND er.examination_basic_id_ = #{examId}
+        AND er.status_ != ''
+    </select>
 
     <select id="getWithExamAndStudents" resultMap="ExamRegistration">
-		SELECT * FROM exam_registration WHERE examination_basic_id_=#{examId} AND student_id_ IN
-		<foreach collection="studentIds" item="studentId" separator="," open="(" close=")">
-			#{studentId}
-		</foreach>
-	</select>
+        SELECT * FROM exam_registration WHERE examination_basic_id_=#{examId} AND student_id_ IN
+        <foreach collection="studentIds" item="studentId" separator="," open="(" close=")">
+            #{studentId}
+        </foreach>
+    </select>
 
-	<select id="getRegists" resultMap="ExamRegistration">
-		SELECT * FROM exam_registration WHERE id_ IN
-		<foreach collection="registIds" item="registId" separator="," open="(" close=")">
-			#{registId}
-		</foreach>
-	</select>
+    <select id="getRegists" resultMap="ExamRegistration">
+        SELECT * FROM exam_registration WHERE id_ IN
+        <foreach collection="registIds" item="registId" separator="," open="(" close=")">
+            #{registId}
+        </foreach>
+    </select>
 
-	<resultMap id="ExamRegistrationDtoMap" type="com.keao.edu.user.dto.ExamRegistrationDto" extends="ExamRegistration">
-		<result property="studentName" column="studentName"/>
-		<result property="subjectName" column="subjectName"/>
-		<result property="examBaseName" column="examBaseName"/>
-		<result property="examStartTime" column="expect_exam_start_time_"/>
-		<result property="examEndTime" column="expect_exam_end_time_"/>
-		<result property="enrollEndTime" column="enroll_end_time_"/>
-		<result property="enrollStartTime" column="enroll_start_time_"/>
-	</resultMap>
+    <resultMap id="ExamRegistrationDtoMap" type="com.keao.edu.user.dto.ExamRegistrationDto" extends="ExamRegistration">
+        <result property="studentName" column="studentName"/>
+        <result property="subjectName" column="subjectName"/>
+        <result property="examBaseName" column="examBaseName"/>
+        <result property="examStartTime" column="expect_exam_start_time_"/>
+        <result property="examEndTime" column="expect_exam_end_time_"/>
+        <result property="enrollEndTime" column="enroll_end_time_"/>
+        <result property="enrollStartTime" column="enroll_start_time_"/>
+    </resultMap>
     <select id="countStudentList" resultType="java.lang.Integer">
-		SELECT COUNT(er.id_) FROM exam_registration er
-		<include refid="queryStudentListSql"/>
-	</select>
-	<sql id="queryStudentListSql">
-		<where>
-			<if test="studentId != null">
-				er.student_id_ = #{studentId}
-			</if>
-			<if test="examRegistrationId != null">
-				er.id_ = #{examRegistrationId}
-			</if>
-			<if test="tenantId != null and tenantId != 0">
-				er.tenant_id_ = #{tenantId}
-			</if>
-			<if test="status != null and status != ''">
-				er.status_ = #{status}
-			</if>
-		</where>
-	</sql>
-	<select id="queryStudentList" resultMap="ExamRegistrationDtoMap">
-		SELECT er.*,eb.enroll_end_time_,eb.enroll_start_time_,eb.expect_exam_end_time_,eb.expect_exam_start_time_,eb.name_ examBaseName
-		FROM exam_registration er
-		LEFT JOIN examination_basic eb ON er.examination_basic_id_ = eb.id_
-		<include refid="queryStudentListSql"/>
-		ORDER BY er.update_time_ DESC
-		<include refid="global.limit"/>
-	</select>
-	<resultMap id="ExamRecordDtoMap" type="com.keao.edu.user.dto.ExamRecordDto" extends="ExamRegistration">
-		<result property="subjectName" column="subjectName"/>
-		<result property="examBaseName" column="examBaseName"/>
-		<result property="examCertificationId" column="examCertificationId"/>
-		<association property="studentExamResult" resultMap="com.keao.edu.user.dao.StudentExamResultDao.StudentExamResult"/>
-	</resultMap>
-	<select id="queryExamList" resultMap="ExamRecordDtoMap">
-		SELECT er.*,ser.* FROM exam_registration er
-		LEFT JOIN student_exam_result ser ON er.id_ = ser.exam_registration_id_
-		WHERE ser.id_ IS NOT NULL AND er.student_id_ = #{studentId}
-	</select>
-	<select id="countExamList" resultType="java.lang.Integer">
-		SELECT COUNT(er.id_) FROM exam_registration er
-		LEFT JOIN student_exam_result ser ON er.id_ = ser.exam_registration_id_
-		WHERE ser.id_ IS NOT NULL AND er.student_id_ = #{studentId}
-	</select>
+        SELECT COUNT(er.id_) FROM exam_registration er
+        <include refid="queryStudentListSql"/>
+    </select>
+    <sql id="queryStudentListSql">
+        <where>
+            <if test="studentId != null">
+                er.student_id_ = #{studentId}
+            </if>
+            <if test="examRegistrationId != null">
+                er.id_ = #{examRegistrationId}
+            </if>
+            <if test="tenantId != null and tenantId != 0">
+                er.tenant_id_ = #{tenantId}
+            </if>
+            <if test="status != null and status != ''">
+                er.status_ = #{status}
+            </if>
+        </where>
+    </sql>
+    <select id="queryStudentList" resultMap="ExamRegistrationDtoMap">
+        SELECT
+        er.*,eb.enroll_end_time_,eb.enroll_start_time_,eb.expect_exam_end_time_,eb.expect_exam_start_time_,eb.name_
+        examBaseName
+        FROM exam_registration er
+        LEFT JOIN examination_basic eb ON er.examination_basic_id_ = eb.id_
+        <include refid="queryStudentListSql"/>
+        ORDER BY er.update_time_ DESC
+        <include refid="global.limit"/>
+    </select>
+    <resultMap id="ExamRecordDtoMap" type="com.keao.edu.user.dto.ExamRecordDto" extends="ExamRegistration">
+        <result property="subjectName" column="subjectName"/>
+        <result property="examBaseName" column="examBaseName"/>
+        <result property="examCertificationId" column="examCertificationId"/>
+        <association property="studentExamResult"
+                     resultMap="com.keao.edu.user.dao.StudentExamResultDao.StudentExamResult"/>
+    </resultMap>
+    <select id="queryExamList" resultMap="ExamRecordDtoMap">
+        SELECT er.*, ser.*
+        FROM exam_registration er
+                 LEFT JOIN student_exam_result ser ON er.id_ = ser.exam_registration_id_
+        WHERE ser.id_ IS NOT NULL
+          AND er.student_id_ = #{studentId}
+    </select>
+    <select id="countExamList" resultType="java.lang.Integer">
+        SELECT COUNT(er.id_)
+        FROM exam_registration er
+                 LEFT JOIN student_exam_result ser ON er.id_ = ser.exam_registration_id_
+        WHERE ser.id_ IS NOT NULL
+          AND er.student_id_ = #{studentId}
+    </select>
 
-	<!-- 获取报名信息 -->
-	<select id="getExamRegistration" resultMap="ExamRegistrationDtoMap">
-		SELECT er.*,s.name_ subjectName,su.real_name_ studentName,eb.expect_exam_start_time_,eb.expect_exam_end_time_ FROM exam_registration er
-		LEFT JOIN sys_user su ON su.id_ = er.student_id_
-		LEFT JOIN examination_basic eb ON er.examination_basic_id_ = eb.id_
-		LEFT JOIN subject s on er.subject_id_ = s.id_
-		WHERE er.id_ = #{examRegistrationId}
-	</select>
+    <!-- 获取报名信息 -->
+    <select id="getExamRegistration" resultMap="ExamRegistrationDtoMap">
+        SELECT er.*,
+               s.name_       subjectName,
+               su.real_name_ studentName,
+               eb.expect_exam_start_time_,
+               eb.expect_exam_end_time_
+        FROM exam_registration er
+                 LEFT JOIN sys_user su ON su.id_ = er.student_id_
+                 LEFT JOIN examination_basic eb ON er.examination_basic_id_ = eb.id_
+                 LEFT JOIN subject s on er.subject_id_ = s.id_
+        WHERE er.id_ = #{examRegistrationId}
+    </select>
 
-	<select id="getExamRegistrationInfo" resultMap="ExamRegistration">
-		SELECT er.*, su.id_ sys_user_id_, su.real_name_ sys_user_real_name_,su.phone_ sys_user_phone_ , s.id_ subject_id_,
-		s.name_ subject_name_ ,eb.name_ examination_basic_name_
-		FROM exam_registration er
-		LEFT JOIN examination_basic eb ON eb.id_=er.examination_basic_id_
-		LEFT JOIN sys_user su ON er.student_id_ = su.id_
-		LEFT JOIN subject s on er.subject_id_ = s.id_
-		WHERE er.id_ = #{id}
-	</select>
+    <select id="getExamRegistrationInfo" resultMap="ExamRegistration">
+        SELECT er.*,
+               su.id_        sys_user_id_,
+               su.real_name_ sys_user_real_name_,
+               su.phone_     sys_user_phone_,
+               s.id_         subject_id_,
+               s.name_       subject_name_,
+               eb.name_      examination_basic_name_
+        FROM exam_registration er
+                 LEFT JOIN examination_basic eb ON eb.id_ = er.examination_basic_id_
+                 LEFT JOIN sys_user su ON er.student_id_ = su.id_
+                 LEFT JOIN subject s on er.subject_id_ = s.id_
+        WHERE er.id_ = #{id}
+    </select>
 
-	<select id="getRegistration" resultMap="ExamRegistration">
-		SELECT * FROM exam_registration WHERE examination_basic_id_ = #{examId}  AND student_id_ =#{studentId} AND subject_id_=#{subjectId} AND level_ = #{level} LIMIT 1
-	</select>
+    <select id="getRegistration" resultMap="ExamRegistration">
+        SELECT * FROM exam_registration
+        <where>
+            <if test="examId != null">
+                AND examination_basic_id_ = #{examId}
+            </if>
+            <if test="studentId != null">
+                AND student_id_ =#{studentId}
+            </if>
+            <if test="subjectId != null">
+                AND subject_id_=#{subjectId}
+            </if>
+            <if test="level != null">
+                AND level_ = #{level}
+            </if>
+            <if test="statusEnumList != null">
+                AND status_ IN
+                <foreach collection="statusEnumList" item="status" open="(" close=")" separator=",">
+                    #{status}
+                </foreach>
+            </if>
+        </where>
+        LIMIT 1
+    </select>
 </mapper>