Explorar el Código

Merge remote-tracking branch 'origin/master'

zouxuan hace 4 años
padre
commit
cd2d6b5eb6

+ 9 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleStudentPaymentDao.java

@@ -517,6 +517,13 @@ public interface CourseScheduleStudentPaymentDao extends BaseDAO<Long, CourseSch
                                                             @Param("studentId") Integer studentId);
 
     List<CourseScheduleStudentPayment> getWithGroup(@Param("groupId") String groupId,
-                                                            @Param("groupType") GroupType groupType,
-                                                            @Param("studentIds") List<Integer> studentIds);
+                                                    @Param("groupType") GroupType groupType,
+                                                    @Param("studentIds") List<Integer> studentIds);
+
+    /**
+     * 获取学生VIP课的教务老师
+     *
+     * @return
+     */
+    String getStudentEduTeacher(@Param("studentId") Integer studentId);
 }

+ 11 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/PracticeGroupDao.java

@@ -170,7 +170,7 @@ public interface PracticeGroupDao extends com.ym.mec.common.dal.BaseDAO<Long, Pr
      */
     List<PracticeGroup> findUserStatusPracticeGroups(@Param("userId") Integer userId,
                                                      @Param("groupStatus") GroupStatusEnum groupStatusEnum,
-                                                     @Param("groupType")PracticeGroupType groupType);
+                                                     @Param("groupType") PracticeGroupType groupType);
 
     /**
      * @param userId:
@@ -366,18 +366,26 @@ public interface PracticeGroupDao extends com.ym.mec.common.dal.BaseDAO<Long, Pr
     List<PracticeGroup> getWithIds(@Param("practiceIds") List<Long> practiceIds);
 
     /**
+     * @param practiceIds:
+     * @return java.util.List<java.util.Map < java.lang.Long, java.lang.String>>
      * @describe 获取网管课类型
      * @author Joburgess
      * @date 2020.08.20
-     * @param practiceIds:
-     * @return java.util.List<java.util.Map<java.lang.Long,java.lang.String>>
      */
     List<Map<Long, String>> getPracticeGroupType(@Param("practiceIds") List<Long> practiceIds);
 
     /**
      * 获取课程关联教务老师名称
+     *
      * @param courseIds
      * @return
      */
     List<Map<Long, String>> queryEduNameMapByCourseId(@Param("courseIds") List<Long> courseIds);
+
+    /**
+     * 获取学生网管课的教务老师
+     *
+     * @return
+     */
+    String getStudentEduTeacher(@Param("studentId") Integer studentId);
 }

+ 10 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/StudentService.java

@@ -2,6 +2,7 @@ package com.ym.mec.biz.service;
 
 import java.text.ParseException;
 
+import com.ym.mec.biz.dal.entity.CooperationOrgan;
 import com.ym.mec.biz.dal.enums.GradeTypeEnum;
 import org.springframework.http.ResponseEntity;
 
@@ -19,7 +20,7 @@ public interface StudentService extends BaseService<Integer, Student> {
     /**
      * 更新学生运营指标
      * @return
-     * @throws ParseException 
+     * @throws ParseException
      */
     boolean updateOperatingTempTag();
 
@@ -57,4 +58,12 @@ public interface StudentService extends BaseService<Integer, Student> {
      * @return void
      */
     void updateStudentTeacherAndSubject();
+
+
+    /**
+     * 获取学生的教务老师
+     * @param userId
+     * @return
+     */
+    CooperationOrgan getStudentEduTeacher(Integer userId);
 }

+ 6 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExportServiceImpl.java

@@ -12,6 +12,7 @@ import com.ym.mec.biz.dal.page.StudentPaymentOrderQueryInfo;
 import com.ym.mec.biz.service.CourseScheduleService;
 import com.ym.mec.biz.service.ExportService;
 import com.ym.mec.biz.service.StudentPaymentOrderService;
+import com.ym.mec.biz.service.StudentService;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.thirdparty.storage.StoragePluginContext;
 import com.ym.mec.thirdparty.storage.provider.KS3StoragePlugin;
@@ -58,6 +59,8 @@ public class ExportServiceImpl implements ExportService {
     private ReplacementInstrumentActivityDao replacementInstrumentActivityDao;
     @Autowired
     private CourseScheduleService courseScheduleService;
+    @Autowired
+    private StudentService studentService;
 
     @Override
     @Async
@@ -252,7 +255,7 @@ public class ExportServiceImpl implements ExportService {
             }
             //如果合作单位不存在取学员的第一个乐团的合作单位,乐团主管
             if (row.getCooperationOrganName() == null) {
-                CooperationOrgan cooperationOrgan = musicGroupDao.findUserMusicGroupCooperationOrgan(row.getUserId());
+                CooperationOrgan cooperationOrgan = studentService.getStudentEduTeacher(row.getUserId());
                 if (cooperationOrgan != null) {
                     row.setCooperationOrganName(cooperationOrgan.getName());
                     row.setEduTeacher(cooperationOrgan.getLinkman() != null ? cooperationOrgan.getLinkman() : row.getEduTeacher());
@@ -513,7 +516,7 @@ public class ExportServiceImpl implements ExportService {
             }
             //如果合作单位不存在取学员的第一个乐团的合作单位和教学点
             if (row.getCooperationOrganName() == null) {
-                CooperationOrgan cooperationOrgan = musicGroupDao.findUserMusicGroupCooperationOrgan(row.getUserId());
+                CooperationOrgan cooperationOrgan = studentService.getStudentEduTeacher(row.getUserId());
                 if (cooperationOrgan != null) {
                     row.setCooperationOrganName(cooperationOrgan.getName());
                     row.setEduTeacher(cooperationOrgan.getLinkman() != null ? cooperationOrgan.getLinkman() : row.getEduTeacher());
@@ -725,6 +728,7 @@ public class ExportServiceImpl implements ExportService {
     }
 
     @Override
+    @Async
     public void superFindCourseSchedules(EndCourseScheduleQueryInfo queryInfo, ManagerDownload managerDownload) throws FileNotFoundException {
         List<CourseScheduleEndDto> rows = courseScheduleService.endFindCourseSchedules(queryInfo).getRows();
         for (CourseScheduleEndDto row : rows) {

+ 30 - 13
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServiceImpl.java

@@ -3,22 +3,18 @@ package com.ym.mec.biz.service.impl;
 import java.util.*;
 import java.util.stream.Collectors;
 
-import com.ym.mec.biz.dal.dao.CourseScheduleDao;
-import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
+import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.StudentClassInfoDto;
+import com.ym.mec.biz.dal.entity.CooperationOrgan;
 import com.ym.mec.biz.dal.enums.FivePlusGradeEnum;
 import com.ym.mec.biz.dal.enums.GradeTypeEnum;
 import com.ym.mec.biz.dal.enums.SixPlusGradeEnum;
-import com.ym.mec.common.page.QueryInfo;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
-import com.ym.mec.biz.dal.dao.CourseScheduleStudentPaymentDao;
-import com.ym.mec.biz.dal.dao.StudentDao;
 import com.ym.mec.biz.dal.dto.StudentCourseTimesDto;
 import com.ym.mec.biz.dal.dto.StudentTeacherCourseDto;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
@@ -44,6 +40,12 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
     @Autowired
     private StudentRegistrationDao studentRegistrationDao;
 
+    @Autowired
+    private MusicGroupDao musicGroupDao;
+
+    @Autowired
+    private PracticeGroupDao practiceGroupDao;
+
     @Override
     public BaseDAO<Integer, Student> getDAO() {
         return studentDao;
@@ -205,35 +207,50 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
     @Override
     public void updateStudentTeacherAndSubject() {
         List<Student> noTeacherOrNoSubjectStudent = studentDao.getNoTeacherOrNoSubjectStudent();
-        if(CollectionUtils.isEmpty(noTeacherOrNoSubjectStudent)){
+        if (CollectionUtils.isEmpty(noTeacherOrNoSubjectStudent)) {
             return;
         }
         List<Integer> studentIds = noTeacherOrNoSubjectStudent.stream().map(Student::getUserId).collect(Collectors.toList());
         List<StudentClassInfoDto> studentClassInfo = studentRegistrationDao.getStudentClassInfo(studentIds);
-        if(CollectionUtils.isEmpty(studentClassInfo)){
+        if (CollectionUtils.isEmpty(studentClassInfo)) {
             return;
         }
         List<Student> needUpdateStudents = new ArrayList<>();
         Map<Integer, List<StudentClassInfoDto>> scm = studentClassInfo.stream().collect(Collectors.groupingBy(StudentClassInfoDto::getStudentId));
         for (Student student : noTeacherOrNoSubjectStudent) {
-            if(!scm.containsKey(student.getUserId())){
+            if (!scm.containsKey(student.getUserId())) {
                 continue;
             }
             List<StudentClassInfoDto> studentClassInfoDtos = scm.get(student.getUserId());
             StudentClassInfoDto studentClassInfoDto = studentClassInfoDtos.stream().max(Comparator.comparing(StudentClassInfoDto::getClassGroupId)).get();
-            if(Objects.isNull(student.getTeacherId())){
+            if (Objects.isNull(student.getTeacherId())) {
                 student.setTeacherId(studentClassInfoDto.getMainTeacherId());
             }
-            if(StringUtils.isBlank(student.getSubjectIdList())){
+            if (StringUtils.isBlank(student.getSubjectIdList())) {
                 student.setSubjectIdList(studentClassInfoDto.getSubjectId().toString());
             }
-            if(Objects.isNull(student.getCooperationOrganId())){
+            if (Objects.isNull(student.getCooperationOrganId())) {
                 student.setCooperationOrganId(studentClassInfoDto.getCooperationOrganId());
             }
             needUpdateStudents.add(student);
         }
-        if(!CollectionUtils.isEmpty(needUpdateStudents)){
+        if (!CollectionUtils.isEmpty(needUpdateStudents)) {
             studentDao.batchUpdate(needUpdateStudents);
         }
     }
+
+    @Override
+    public CooperationOrgan getStudentEduTeacher(Integer userId) {
+        CooperationOrgan cooperationOrgan = musicGroupDao.findUserMusicGroupCooperationOrgan(userId);
+        if (cooperationOrgan != null) {
+            return cooperationOrgan;
+        }
+        cooperationOrgan = new CooperationOrgan();
+        String studentEduTeacher = courseScheduleStudentPaymentDao.getStudentEduTeacher(userId);
+        if (studentEduTeacher == null) {
+            studentEduTeacher = practiceGroupDao.getStudentEduTeacher(userId);
+        }
+        cooperationOrgan.setLinkman(studentEduTeacher);
+        return cooperationOrgan;
+    }
 }

+ 10 - 1
mec-biz/src/main/resources/config/mybatis/CourseScheduleStudentPaymentMapper.xml

@@ -481,7 +481,7 @@
     <select id="countStudentNotStartCourseNumWithCourseType" resultType="int">
 		SELECT COUNT(DISTINCT cssp.course_schedule_id_) FROM course_schedule_student_payment cssp
 		LEFT JOIN course_schedule cs ON cs.id_=cssp.course_schedule_id_
-		WHERE cssp.user_id_=#{studentId} 
+		WHERE cssp.user_id_=#{studentId}
 		<if test="courseScheduleType != null">
 		AND cs.type_= #{courseScheduleType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 		</if>
@@ -750,4 +750,13 @@
 			</foreach>
 		</if>
 	</select>
+
+	<select id="getStudentEduTeacher" resultType="string">
+		SELECT edut.real_name_ FROM course_schedule_student_payment cssp
+		LEFT JOIN vip_group vg ON vg.id_ = cssp.music_group_id_ AND cssp.group_type_='VIP'
+		LEFT JOIN sys_user edut ON edut.id_ = vg.educational_teacher_id_
+		WHERE cssp.user_id_ = #{studentId}
+		AND vg.group_status_ IN (0,1,2)
+		ORDER BY vg.create_time_ DESC LIMIT 1
+	</select>
 </mapper>

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

@@ -747,4 +747,13 @@
         </foreach>
         AND pg.educational_teacher_id_ IS NOT NULL
     </select>
+
+    <select id="getStudentEduTeacher" resultType="string">
+        SELECT edut.real_name_
+        FROM practice_group pg
+        LEFT JOIN sys_user edut ON edut.id_ = pg.educational_teacher_id_
+        WHERE pg.student_id_ = #{studentId}
+            AND pg.group_status_ IN ('NORMAL','FINISH')
+        ORDER BY pg.courses_start_date_ DESC LIMIT 1
+    </select>
 </mapper>