Bladeren bron

Merge remote-tracking branch 'origin/feature_HW_20230331' into feature_HW_20230331

zouxuan 2 jaren geleden
bovenliggende
commit
88755cadc6

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDao.java

@@ -512,6 +512,9 @@ public interface TeacherDao extends BaseDAO<Integer, Teacher> {
     List<String> queryTeacherMusicIds(Map<String, Object> params);
     int countTeacherMusics(Map<String, Object> params);
 
+    List<String> queryTeacherMusicIdsV2(Map<String, Object> params);
+    int countTeacherMusicsV2(Map<String, Object> params);
+
     int countTeacherBasicInfo(Map<String, Object> params);
 
     List<SysUserDto> queryTeacherBasicInfo(Map<String, Object> params);

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/TeacherService.java

@@ -252,4 +252,6 @@ public interface TeacherService extends BaseService<Integer, Teacher> {
     * @date 2022/7/15 15:31
     */
     List<BaseMapDto<Integer,String>> queryOrganList(Integer userId);
+
+    PageInfo<TeacherMusicStudentOverViewDto> queryTeacherMusicStudentOverViewV2(TeacherServeQueryInfo queryInfo);
 }

+ 7 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentExtracurricularExercisesSituationServiceImpl.java

@@ -841,11 +841,13 @@ public class StudentExtracurricularExercisesSituationServiceImpl extends BaseSer
                     }
                 }
 
-                // 设置老师信息
-                SysUser sysUser = sysUserFeignService.queryUserById(courseHomeworkList.getTeacherId());
-                if (Objects.nonNull(sysUser)) {
-                    courseHomeworkList.setTeacherName(sysUser.getUsername());
-                    courseHomeworkList.setTeacherImg(sysUser.getAvatar());
+                if (courseHomeworkList.getTeacherId() != null) {
+                    // 设置老师信息
+                    SysUser sysUser = sysUserFeignService.queryUserById(courseHomeworkList.getTeacherId());
+                    if (Objects.nonNull(sysUser)) {
+                        courseHomeworkList.setTeacherName(sysUser.getUsername());
+                        courseHomeworkList.setTeacherImg(sysUser.getAvatar());
+                    }
                 }
             }
 

+ 33 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentLessonTrainingDetailServiceImpl.java

@@ -3,9 +3,11 @@ package com.ym.mec.biz.service.impl;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ym.mec.biz.dal.dao.StudentLessonTrainingDetailMapper;
+import com.ym.mec.biz.dal.dao.SubjectDao;
 import com.ym.mec.biz.dal.dao.SysMusicScoreDao;
 import com.ym.mec.biz.dal.dto.StudentLessonTrainingDetailWrapper;
 import com.ym.mec.biz.dal.entity.StudentLessonTrainingDetail;
+import com.ym.mec.biz.dal.entity.Subject;
 import com.ym.mec.biz.dal.entity.SysMusicScore;
 import com.ym.mec.biz.dal.enums.ELessonTrainingType;
 import com.ym.mec.biz.dal.enums.StandardEnum;
@@ -32,6 +34,10 @@ public class StudentLessonTrainingDetailServiceImpl extends ServiceImpl<StudentL
 
     @Autowired
     private SysMusicScoreDao sysMusicScoreDao;
+
+    @Autowired
+    private SubjectDao subjectDao;
+
 	/**
      * 查询详情
      * @param id 详情ID
@@ -160,6 +166,33 @@ public class StudentLessonTrainingDetailServiceImpl extends ServiceImpl<StudentL
                 studentLessonTrainingDetail.setMusicScoreName(sysMusicScore.getName());
             }
         }
+
+        // 声部
+        List<Integer> subjectIdList = studentLessonTrainingDetails.stream()
+                                                          .map(o -> {
+                                                              if (o.getSubjectId() != null) {
+                                                                  return o.getSubjectId().intValue();
+                                                              }
+                                                              return 0;
+                                                          })
+                                                          .collect(Collectors.toList());
+
+        List<Subject> subjectList = subjectDao.findBySubjectIds(subjectIdList);
+
+        // id 分组
+        Map<Integer, Subject> subjectMap = subjectList.stream()
+                                                     .collect(Collectors.toMap(Subject::getId, Function.identity()));
+
+        for (StudentLessonTrainingDetailWrapper.StudentLessonTrainingDetail studentLessonTrainingDetail : studentLessonTrainingDetails) {
+            if (studentLessonTrainingDetail.getSubjectId() == null) {
+                continue;
+            }
+            Subject subject = subjectMap.get(studentLessonTrainingDetail.getSubjectId().intValue());
+            if (subject != null) {
+                studentLessonTrainingDetail.setSubjectName(subject.getName());
+            }
+        }
+
         return studentLessonTrainingDetails;
     }
 }

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java

@@ -740,6 +740,28 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher> implem
         return pageInfo;
     }
 
+
+    @Override
+    public PageInfo<TeacherMusicStudentOverViewDto> queryTeacherMusicStudentOverViewV2(TeacherServeQueryInfo queryInfo) {
+        PageInfo<TeacherMusicStudentOverViewDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<String, Object>();
+        MapUtil.populateMap(params, queryInfo);
+
+        List<TeacherMusicStudentOverViewDto> dataList = null;
+        int count = teacherDao.countTeacherMusicsV2(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            List<String> musicGroupIds = teacherDao.queryTeacherMusicIdsV2(params);
+            dataList = musicGroupDao.queryTeacherMusicStudentOverView(musicGroupIds);
+        }
+        if (count == 0) {
+            dataList = new ArrayList<>();
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
+    }
+
     @Override
     public PageInfo<SysUserDto> queryTeacherBasicInfo(UserBasicQueryInfo queryInfo) {
         PageInfo<SysUserDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());

+ 2 - 1
mec-biz/src/main/resources/config/mybatis/StudentExtracurricularExercisesSituationMapper.xml

@@ -835,11 +835,12 @@
         FROM course_schedule_teacher_salary csts
                  LEFT JOIN course_schedule cs ON cs.id_ = csts.course_schedule_id_
                  LEFT JOIN student_extracurricular_exercises_situation_ se ON se.teacher_id_ = csts.user_id_
+        left join lesson_examination le on le.course_schedule_id_ = csts.course_schedule_id_
         WHERE csts.user_id_ = #{teacherId}
         <if test="firstDayOfMonth != null and lastDayOfMonth != null">
             AND cs.class_date_ BETWEEN #{firstDayOfMonth} AND #{lastDayOfMonth}
         </if>
-          AND FIND_IN_SET(cs.id_, se.course_ids_)
+          AND FIND_IN_SET(cs.id_, se.course_ids_) and le.id_ is null
           AND se.serve_type_ = 'HOMEWORK'
     </select>
 

+ 30 - 0
mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -1440,6 +1440,19 @@
         </where>
     </sql>
 
+
+    <sql id="queryTeacherMusicIdsConditionV2">
+        <where>
+            csts.del_flag_=0 AND csts.group_type_='MUSIC' AND mg.del_flag_=0 AND mg.status_='PROGRESS' and csts.tenant_id_ = #{tenantId}
+            <if test="teacherId!=null">
+                AND csts.teacher_id_=#{teacherId}
+            </if>
+            <if test="search!=null and search!=''">
+                AND mg.name_ LIKE CONCAT('%', #{search}, '%')
+            </if>
+        </where>
+    </sql>
+
     <select id="queryTeacherMusicIds" resultType="string">
         SELECT csts.music_group_id_
         FROM course_schedule_teacher_salary csts
@@ -1459,6 +1472,23 @@
         <include refid="queryTeacherMusicIdsCondition"></include>
     </select>
 
+    <select id="queryTeacherMusicIdsV2" resultType="string">
+        SELECT csts.music_group_id_
+        FROM course_schedule csts
+        LEFT JOIN music_group mg ON csts.music_group_id_=mg.id_
+        <include refid="queryTeacherMusicIdsConditionV2"></include>
+        GROUP BY csts.music_group_id_
+        ORDER BY mg.create_time_ DESC, mg.id_
+        <include refid="global.limit"></include>
+    </select>
+
+    <select id="countTeacherMusicsV2" resultType="int">
+        SELECT COUNT(DISTINCT csts.music_group_id_)
+        FROM course_schedule csts
+        LEFT JOIN music_group mg ON csts.music_group_id_=mg.id_
+        <include refid="queryTeacherMusicIdsConditionV2"></include>
+    </select>
+
     <select id="getSimpleUser" resultType="com.ym.mec.biz.dal.dto.SimpleUserDto">
         SELECT
             su.id_ userId,

+ 8 - 0
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherController.java

@@ -183,4 +183,12 @@ public class TeacherController extends BaseController {
         return succeed(teacherService.queryTeacherMusicStudentOverView(queryInfo));
     }
 
+
+    @ApiOperation(value = "查询教师关联的乐团预览信息")
+    @GetMapping("/queryTeacherMusicStudentOverView/v2")
+    public HttpResponseResult<PageInfo<TeacherMusicStudentOverViewDto>> queryTeacherMusicStudentOverViewV2(TeacherServeQueryInfo queryInfo){
+        queryInfo.setTeacherId(sysUserService.getUserId());
+        return succeed(teacherService.queryTeacherMusicStudentOverViewV2(queryInfo));
+    }
+
 }