瀏覽代碼

班级进入学员

change 3 年之前
父節點
當前提交
4b0348c83a

+ 4 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/ClassGradeUserQueryBo.java

@@ -92,7 +92,10 @@ public class ClassGradeUserQueryBo extends BaseEntity {
 	private Integer learnStatus;
 
 	/** 獲得第幾條審核記錄 */
-	@Excel(name = "獲得第幾條審核記錄")
 	@ApiModelProperty("獲得第幾條審核記錄")
 	private Long numIndex;
+
+	/** 獲得第幾條審核記錄 */
+	@ApiModelProperty("1 无选班再次学习的学员 2有选班再次学习的学员 0全部")
+	private Long choice;
 }

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeServiceImpl.java

@@ -266,6 +266,12 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean editUserGrade(ClassGradeUserAddQueryBo bo) {
+        ClassGradeQueryBo classGradeQueryBo = new ClassGradeQueryBo();
+        classGradeQueryBo.setGradeId(bo.getGradeId());
+        ClassGradeVo classGradeVo = entity2Vo(baseMapper.queryList(classGradeQueryBo)).get(0);
+        if ((classGradeVo.getStudentUpper() - classGradeVo.getStudentNum()) < bo.getUserId().length){
+            throw new IllegalArgumentException("当前班级超出上限,不允许添加这么多学员");
+        }
         for (Long aLong : bo.getUserId()) {
             //防止再次进入相同班级,不可进入已经在有效期内班级进入另外一个班级
             ClassGradeUserQueryBo classGradeUserQueryBo = new ClassGradeUserQueryBo();

+ 9 - 0
zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeMapper.xml

@@ -299,6 +299,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="gradeId != null and gradeId !='' ">
           and cgu.grade_id = #{gradeId}
         </if>
+        <if test="choice != null and gradeId == 1 ">
+            and (SELECT COUNT(cge.grade_id) FROM class_grade cge LEFT JOIN class_grade_user cgur on cge.grade_id = cgur.grade_id where cgu.user_id =cgur.user_id and (SELECT cgg.goods_id FROM class_grade_goods cgg where cge.grade_id=cgg.grade_id) = (SELECT cgg.goods_id FROM class_grade_goods cgg where cg.grade_id=cgg.grade_id)  AND unix_timestamp(now()) BETWEEN cge.class_start_time and cge.class_end_time) = 0
+            and cgu.period_status=0
+            AND (SELECT COUNT(cgde.grade_id) FROM class_grade cgde where cgde.grade_id = cg.grade_id and unix_timestamp(now()) BETWEEN cgde.class_start_time and cgde.class_end_time) =0
+        </if>
+        <if test="choice != null and gradeId == 2 ">
+            and (SELECT COUNT(cge.grade_id) FROM class_grade cge LEFT JOIN class_grade_user cgur on cge.grade_id = cgur.grade_id where cgu.user_id =cgur.user_id and (SELECT cgg.goods_id FROM class_grade_goods cgg where cge.grade_id=cgg.grade_id) = (SELECT cgg.goods_id FROM class_grade_goods cgg where cg.grade_id=cgg.grade_id)  AND unix_timestamp(now()) BETWEEN cge.class_start_time and cge.class_end_time) > 0
+            AND (SELECT COUNT(cgde.grade_id) FROM class_grade cgde where cgde.grade_id = cg.grade_id and unix_timestamp(now()) BETWEEN cgde.class_start_time and cgde.class_end_time) =0
+        </if>
         order by cgu.create_time desc
     </select>