yangdamao há 1 ano atrás
pai
commit
6c8b31bc36

+ 0 - 2
run-prod.sh

@@ -1,5 +1,3 @@
-
-
 #!/usr/bin/env bash
 # 定义应用组名
 group_admin_name='zhongzheng'

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/mapper/ClassGradeMapper.java

@@ -108,4 +108,6 @@ public interface ClassGradeMapper extends BaseMapper<ClassGrade> {
 
     @InterceptorIgnore(tenantLine = "true")
     ClassGrade getCodeNoTenant(@Param("officialName") String officialName,@Param("tenantId") Long tenantId);
+
+    Long getGradeCount(String sevenCode);
 }

+ 20 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeServiceImpl.java

@@ -229,7 +229,26 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
 
     @Override
     public List<ClassGradeGoodsVo> listGoodsBatch(ClassGradeQueryBo bo) {
-        return baseMapper.listGoodsBatch(bo);
+        List<ClassGradeGoodsVo> classGradeGoodsVos = baseMapper.listGoodsBatch(bo);
+        if (CollectionUtils.isEmpty(classGradeGoodsVos)){
+            return new ArrayList<>();
+        }
+        classGradeGoodsVos.forEach(item -> {
+            if (CollectionUtils.isNotEmpty(item.getGradeList())){
+                List<ClassGradeVo> collect = item.getGradeList().stream().filter(gradeVo -> {
+                    //班级人数是否满人
+                    if (ObjectUtil.isNotNull(gradeVo.getSevenCode())) {
+                        Long count = baseMapper.getGradeCount(gradeVo.getSevenCode());
+                        if (gradeVo.getStudentUpper() <= count) {
+                            return false;
+                        }
+                    }
+                    return true;
+                }).collect(Collectors.toList());
+                item.setGradeList(collect);
+            }
+        });
+        return classGradeGoodsVos;
     }
 
     /**

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

@@ -1347,4 +1347,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             LIMIT 1
     </select>
 
+    <select id="getGradeCount" resultType="java.lang.Long" parameterType="java.lang.String">
+        SELECT
+            COUNT( DISTINCT cgu.user_id )
+        FROM
+            class_grade_user cgu
+        WHERE
+            cgu.`status` = 1
+          AND cgu.grade_id IN ( SELECT grade_id FROM class_grade WHERE seven_code = #{sevenCode} )
+    </select>
+
 </mapper>