shangke 1 year ago
parent
commit
b2ca617376

+ 8 - 4
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentDao.java

@@ -10,10 +10,7 @@ import com.ym.mec.biz.dal.vo.TempCampUserTrainingSequenceVo;
 import com.ym.mec.biz.dal.wrapper.StudentWrapper;
 import org.apache.ibatis.annotations.Param;
 
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 
 public interface StudentDao extends com.ym.mec.common.dal.BaseDAO<Integer, Student> {
 
@@ -374,4 +371,11 @@ public interface StudentDao extends com.ym.mec.common.dal.BaseDAO<Integer, Stude
     List<StudentWrapper.StudentHomework> getStudentHomework(@Param("param") StudentWrapper.StudentAttendanceQuery studentAttendanceQuery);
 
     List<String> queryExistStuByPhone(@Param("phones") List<String> phones);
+
+    /**
+     * 统计学校在读学生数
+     * @param paramMap 查询条件
+     * @return 在读学生数
+     */
+    int countMusicGroupStudents(Map<String, Object> paramMap);
 }

+ 23 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SchoolStaffServiceImpl.java

@@ -12,6 +12,7 @@ import com.ym.mec.auth.api.enums.YesOrNoEnum;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
+import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
 import com.ym.mec.biz.dal.enums.school.ESchoolStaffType;
 import com.ym.mec.biz.dal.mapper.SchoolStaffMapper;
 import com.ym.mec.biz.dal.wrapper.SchoolStaffWrapper;
@@ -60,6 +61,10 @@ public class SchoolStaffServiceImpl extends ServiceImpl<SchoolStaffMapper, Schoo
     private CooperationOrganDao cooperationOrganDao;
     @Autowired
     private SmsCodeService smsCodeService;
+    @Autowired
+    private MusicGroupDao musicGroupDao;
+    @Autowired
+    private StudentDao studentDao;
 
     @Autowired
     private ImUserFriendDao imUserFriendDao;
@@ -552,14 +557,30 @@ public class SchoolStaffServiceImpl extends ServiceImpl<SchoolStaffMapper, Schoo
         Map<String, Integer> collect = baseMapper.selectUserTypeNumsStat(schoolId).stream()
                 .collect(Collectors.toMap(StatGroupWrapper::getGid, StatGroupWrapper::getTotal, (o, n) -> n));
 
+        // 学校统计条件
+        HashMap<String, Object> paramMap = new HashMap<String, Object>() {{
+            put("schoolId", schoolId);
+            put("status", MusicGroupStatusEnum.PROGRESS);
+        }};
+
+        CooperationOrgan cooperationOrgan = cooperationOrganDao.get(schoolId);
+        if (Objects.nonNull(cooperationOrgan)) {
+            paramMap.put("tenantId", cooperationOrgan.getTenantId());
+        }
+        // 学校乐团统计
+        int orchestraNums = musicGroupDao.countMusicGroups(paramMap);
+
+        // 学校在读学生
+        int studentNums = studentDao.countMusicGroupStudents(paramMap);
+
         // 统计学校员工身份
         return SchoolStaffWrapper.SchoolStaffStat.builder()
                 .schoolmasterNums(collect.getOrDefault(ESchoolStaffType.SCHOOLMASTER.getCode(), 0))
                 .schoolLeaderNums(collect.getOrDefault(ESchoolStaffType.SCHOOL_LEADER.getCode(), 0))
                 .orchestraLeaderNums(collect.getOrDefault(ESchoolStaffType.ORCHESTRA_LEADER.getCode(), 0))
                 .teacherNums(collect.getOrDefault(ESchoolStaffType.TEACHER.getCode(), 0))
-                .orchestraNums(0)
-                .studentNums(0)
+                .orchestraNums(orchestraNums)
+                .studentNums(studentNums)
                 .build();
     }
 

+ 3 - 0
mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml

@@ -655,6 +655,9 @@
             <if test="status!=null">
                 AND status_=#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
             </if>
+            <if test="schoolId != null">
+                AND cooperation_organ_id_ = #{schoolId}
+            </if>
         </where>
     </sql>
     <select id="findMusicGroups" resultMap="MusicGroup">

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

@@ -1390,4 +1390,16 @@
                  left join lesson_examination t2 on t2.id_ = t.lesson_examination_id_
         <include refid="homeworkSql"/>
     </select>
+
+    <select id="countMusicGroupStudents" resultType="java.lang.Integer">
+        SELECT COUNT(DISTINCT t2.user_id_) FROM music_group t1 JOIN student_registration t2 ON (t1.id_ = t2.music_group_id_)
+        <where>
+            <if test="status != null">
+                AND t1.status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+            </if>
+            <if test="schoolId != null">
+                AND t1.cooperation_organ_id_ = #{schoolId}
+            </if>
+        </where>
+    </select>
 </mapper>