Ver código fonte

feat:六一活动排课

Joburgess 4 anos atrás
pai
commit
432af0d34b

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentDao.java

@@ -23,6 +23,8 @@ public interface StudentDao extends com.ym.mec.common.dal.BaseDAO<Integer, Stude
 
     List<Student> findByStudentIds(@Param("studentIds") List<Integer> studentIds);
 
+    List<Student> lockStudents(@Param("studentIds") List<Integer> studentIds);
+
     SysUser lockUserReturnInfo(@Param("userId") Integer userId);
 
     SysUser getUser(@Param("userId") Integer userId);

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -523,7 +523,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		}
 		List<Integer> studentIdList = Arrays.stream(studentIds.split(",")).map(id->Integer.valueOf(id)).collect(Collectors.toList());
 
-		List<Student> studentDetail = studentDao.findByStudentIds(studentIdList);
+		List<Student> studentDetail = studentDao.lockStudents(studentIdList);
 		List<SimpleUserDto> studentSimpleInfos = teacherDao.getUsersSimpleInfo(studentIdList);
 		if(studentDetail.size()!=studentSimpleInfos.size()){
 			throw new BizException("学员信息错误");

+ 9 - 0
mec-biz/src/main/resources/config/mybatis/StudentMapper.xml

@@ -649,6 +649,15 @@
             #{studentId}
         </foreach>
     </select>
+
+    <select id="lockStudents" resultMap="Student">
+        SELECT * FROM student WHERE user_id_ IN
+        <foreach collection="studentIds" item="studentId" open="(" close=")" separator=",">
+            #{studentId}
+        </foreach>
+        FOR UPDATE
+    </select>
+
     <select id="queryCloseServiceTagIds" resultType="java.lang.Integer">
         SELECT s.user_id_ FROM student s
         LEFT JOIN course_schedule_student_payment cssp ON cssp.user_id_ = s.user_id_

+ 2 - 2
mec-web/src/main/java/com/ym/mec/web/controller/education/EduVipGroupActivityController.java

@@ -57,8 +57,8 @@ public class EduVipGroupActivityController extends BaseController {
         if(Objects.isNull(activityIdConfig)||StringUtils.isBlank(activityIdConfig.getParanValue())){
             return succeed();
         }
-        Set<Integer> activityIds = new HashSet<>();
-        activityIds = Arrays.stream(activityIdConfig.getParanValue().split(",")).map(id->Integer.valueOf(id)).collect(Collectors.toSet());
+
+        Set<Integer> activityIds = Arrays.stream(activityIdConfig.getParanValue().split(",")).map(id->Integer.valueOf(id)).collect(Collectors.toSet());
 
         List<Integer> userIds = Arrays.stream(studentIds.split(",")).map(id -> Integer.valueOf(id)).collect(Collectors.toList());
         List<Student> students = studentDao.findByStudentIds(userIds);