Joburgess 5 tahun lalu
induk
melakukan
74e84b82ea

+ 3 - 2
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/ExamRegistrationServiceImpl.java

@@ -27,6 +27,7 @@ import com.keao.edu.user.service.*;
 import com.keao.edu.util.collection.MapUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
@@ -71,9 +72,9 @@ public class ExamRegistrationServiceImpl extends BaseServiceImpl<Long, ExamRegis
     }
 
     @Override
-    @Transactional(rollbackFor = Exception.class)
+    @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
     public Map<String, Object> addRegistration(ExamRegistration examRegistration) throws Exception {
-        ExaminationBasic examinationBasic = examinationBasicDao.get(examRegistration.getExaminationBasicId());
+        ExaminationBasic examinationBasic = examinationBasicDao.lockExam(examRegistration.getExaminationBasicId());
         if (examinationBasic == null || !examinationBasic.getStatus().equals(ExamStatusEnum.APPLYING)) {
             throw new BizException("项目不在报名中,请核对");
         }

+ 26 - 1
edu-user/edu-user-biz/src/main/resources/config/mybatis/ExaminationBasicMapper.xml

@@ -252,7 +252,32 @@
 	</select>
 
     <select id="lockExam" resultMap="ExaminationBasic">
-		SELECT id_,name_ FROM examination_basic WHERE id_=#{examId}
+		SELECT
+			id_,
+			name_,
+			exam_mode_,
+			exam_location_id_list_,
+			status_,
+			enroll_start_time_,
+			enroll_end_time_,
+			expect_exam_start_time_,
+			expect_exam_end_time_,
+			poster_title_,
+			poster_profile_,
+			poster_background_img_,
+			memo_,
+			create_time_,
+			update_time_,
+			tenant_id_,
+			organ_id_,
+			creator_id_,
+			exam_location_name_list_,
+			actual_exam_start_time_,
+			actual_exam_end_time_
+		FROM
+			examination_basic
+		WHERE
+			id_ = #{examId} FOR UPDATE
 	</select>
 
     <select id="getEndExamsWithDayAndStatus" resultMap="ExaminationBasic">