Selaa lähdekoodia

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

yonge 5 vuotta sitten
vanhempi
commit
b06f30bc27

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

@@ -1416,7 +1416,7 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @param groupType
      * @return
      */
-    List<CourseScheduleRateDto> findCourseRate(@Param("groupId") String groupId, @Param("groupType") String groupType);
+    List<CourseScheduleRateDto> findCourseRate(@Param("groupId") String groupId, @Param("groupType") String groupType, @Param("classGroupId") Integer classGroupId);
 
     /**
      * 获取最后一次已结束的课程
@@ -1425,7 +1425,7 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @param groupType
      * @return
      */
-    CourseSchedule getLastEndCourse(@Param("groupId") String groupId, @Param("groupType") String groupType);
+    CourseSchedule getLastEndCourse(@Param("groupId") String groupId, @Param("groupType") String groupType, @Param("classGroupId") Integer classGroupId);
 
     /**
      * 根据课程组获取课表信息

+ 1 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentDao.java

@@ -13,6 +13,7 @@ public interface StudentDao extends com.ym.mec.common.dal.BaseDAO<Integer, Stude
 
     int lockUser(@Param("userId") Integer userId);
 
+    SysUser lockUserReturnInfo(@Param("userId") Integer userId);
 
     List<SysUser> findStudents(Map<String, Object> params);
 

+ 66 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/OnlineMusicGroupCourseDto.java

@@ -0,0 +1,66 @@
+package com.ym.mec.biz.dal.dto;
+
+import java.util.Date;
+
+public class OnlineMusicGroupCourseDto {
+
+    private String musicGroupId;
+
+    private Integer studentId;
+
+    private Integer subjectId;
+
+    private Integer teacherId;
+
+    private Date firstCourseTime;
+
+    private boolean skipHoliday;
+
+    public boolean isSkipHoliday() {
+        return skipHoliday;
+    }
+
+    public void setSkipHoliday(boolean skipHoliday) {
+        this.skipHoliday = skipHoliday;
+    }
+
+    public String getMusicGroupId() {
+        return musicGroupId;
+    }
+
+    public void setMusicGroupId(String musicGroupId) {
+        this.musicGroupId = musicGroupId;
+    }
+
+    public Integer getStudentId() {
+        return studentId;
+    }
+
+    public void setStudentId(Integer studentId) {
+        this.studentId = studentId;
+    }
+
+    public Integer getSubjectId() {
+        return subjectId;
+    }
+
+    public void setSubjectId(Integer subjectId) {
+        this.subjectId = subjectId;
+    }
+
+    public Integer getTeacherId() {
+        return teacherId;
+    }
+
+    public void setTeacherId(Integer teacherId) {
+        this.teacherId = teacherId;
+    }
+
+    public Date getFirstCourseTime() {
+        return firstCourseTime;
+    }
+
+    public void setFirstCourseTime(Date firstCourseTime) {
+        this.firstCourseTime = firstCourseTime;
+    }
+}

+ 3 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/OnlineMusicGroupService.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service;
 
+import com.ym.mec.biz.dal.dto.OnlineMusicGroupCourseDto;
 import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.common.page.QueryInfo;
 
@@ -9,7 +10,8 @@ public interface OnlineMusicGroupService {
 
     /**
      * 创建线上乐团班级
+     * @param onlineMusicGroupCourseInfo
      */
-    void createOnlineMusicClassGroup();
+    void createOnlineMusicClassGroup(OnlineMusicGroupCourseDto onlineMusicGroupCourseInfo);
 
 }

+ 15 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -48,6 +48,7 @@ import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
+import static com.ym.mec.biz.dal.enums.GroupType.MUSIC;
 import static com.ym.mec.biz.dal.enums.GroupType.PRACTICE;
 import static com.ym.mec.biz.dal.enums.PracticeGroupType.*;
 import static com.ym.mec.biz.dal.enums.SignInStatusEnum.*;
@@ -4217,10 +4218,20 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		if(schedule == null){
 			throw new BizException("课程不存在");
 		}
-		//获取课程列表
-		List<CourseScheduleRateDto> courseScheduleRateDtos = courseScheduleDao.findCourseRate(schedule.getMusicGroupId(),schedule.getGroupType().getCode());
-		//获取最近一次已结束的课程
-		CourseSchedule courseSchedule = courseScheduleDao.getLastEndCourse(schedule.getMusicGroupId(),schedule.getGroupType().getCode());
+		//如果是乐团课
+		List<CourseScheduleRateDto> courseScheduleRateDtos;
+		CourseSchedule courseSchedule;
+		if(schedule.getGroupType() == MUSIC){
+			//获取当前班级
+			courseScheduleRateDtos = courseScheduleDao.findCourseRate(null,schedule.getGroupType().getCode(),schedule.getClassGroupId());
+			//获取最近一次已结束的课程
+			courseSchedule = courseScheduleDao.getLastEndCourse(null,schedule.getGroupType().getCode(),schedule.getClassGroupId());
+		}else {
+			//获取课程列表
+			courseScheduleRateDtos = courseScheduleDao.findCourseRate(schedule.getMusicGroupId(),schedule.getGroupType().getCode(),null);
+			//获取最近一次已结束的课程
+			courseSchedule = courseScheduleDao.getLastEndCourse(schedule.getMusicGroupId(),schedule.getGroupType().getCode(),null);
+		}
 		List<Long> courseScheduleIds = courseScheduleRateDtos.stream().map(CourseScheduleRateDto::getCourseScheduleId).collect(Collectors.toList());
 		List<CourseScheduleReview> courseReviews = courseScheduleReviewDao.findByCourseSchedules(courseScheduleIds);
 		Map<Integer, List<CourseScheduleReview>> reviews = courseReviews.stream().collect(Collectors.groupingBy(CourseScheduleReview::getCourseScheduleId));

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

@@ -193,10 +193,10 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             musicGroupPaymentEntitiesDao.batchAdd(subFeeSettingDto.getMusicGroupPaymentEntities(), musicGroupId);
         }
         // 保存学员付费周期
-        List<Integer> months = subFeeSettingDto.getMonths();
+        /*List<Integer> months = subFeeSettingDto.getMonths();
         if (months != null && months.size() > 0) {
             musicGroupPaymentCalenderDao.batchAdd(months, musicGroupId);
-        }
+        }*/
 
         //乐团科目学生
         if (subjectRegisters != null && subjectRegisters.size() > 0) {
@@ -1950,12 +1950,12 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             courseScheduleDao.updateCourseScheduleSchool("MUSIC", musicGroupId, musicGroup.getSchoolId());
         }
         updateTeamTeacher(group,musicGroup);
-        List<Integer> months = subFeeSettingDto.getMonths();
+//        List<Integer> months = subFeeSettingDto.getMonths();
 
         Date date = new Date();
 
         //判断缴费日历是否修改
-        boolean isModifiedOfCalender = false;
+        /*boolean isModifiedOfCalender = false;
 
         List<MusicGroupPaymentCalender> calenderList = musicGroupPaymentCalenderDao.findByMusicGroupId(musicGroupId);
         if (months.size() == calenderList.size()) {
@@ -1995,7 +1995,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 e.setUpdateTime(date);
             });
             musicGroupStudentFeeDao.batchUpdate(fees);
-        }
+        }*/
         musicGroup.setUpdateTime(date);
         musicGroupDao.update(musicGroup);
         //修改课程里面的教学点

+ 71 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/OnlineMusicGroupServiceImpl.java

@@ -1,16 +1,85 @@
 package com.ym.mec.biz.service.impl;
 
+import com.alibaba.fastjson.JSON;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dao.MusicGroupDao;
+import com.ym.mec.biz.dal.dao.StudentDao;
+import com.ym.mec.biz.dal.dao.SubjectDao;
+import com.ym.mec.biz.dal.dao.TeacherDao;
+import com.ym.mec.biz.dal.dto.OnlineMusicGroupCourseDto;
 import com.ym.mec.biz.dal.entity.MusicGroup;
+import com.ym.mec.biz.dal.entity.Subject;
+import com.ym.mec.biz.dal.entity.SysConfig;
+import com.ym.mec.biz.dal.entity.Teacher;
 import com.ym.mec.biz.service.OnlineMusicGroupService;
+import com.ym.mec.biz.service.SysConfigService;
+import com.ym.mec.common.exception.BizException;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Isolation;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.HashSet;
+import java.util.Objects;
+import java.util.Set;
 
-import java.util.List;
 
 @Service
 public class OnlineMusicGroupServiceImpl implements OnlineMusicGroupService {
 
+    @Autowired
+    private MusicGroupDao musicGroupDao;
+    @Autowired
+    private StudentDao studentDao;
+    @Autowired
+    private TeacherDao teacherDao;
+    @Autowired
+    private SubjectDao subjectDao;
+    @Autowired
+    private SysConfigService sysConfigService;
+
+    @Transactional(rollbackFor = Exception.class, isolation = Isolation.DEFAULT)
     @Override
-    public void createOnlineMusicClassGroup() {
+    public void createOnlineMusicClassGroup(OnlineMusicGroupCourseDto onlineMusicGroupCourseInfo) {
+        if(Objects.isNull(onlineMusicGroupCourseInfo.getMusicGroupId())){
+            throw new BizException("请指定乐团");
+        }
+        if(Objects.isNull(onlineMusicGroupCourseInfo.getStudentId())){
+            throw new BizException("请指定学员");
+        }
+        if(Objects.isNull(onlineMusicGroupCourseInfo.getSubjectId())){
+            throw new BizException("请指定学员声部");
+        }
+        if(Objects.isNull(onlineMusicGroupCourseInfo.getTeacherId())){
+            throw new BizException("请指定教师");
+        }
+        if(Objects.isNull(onlineMusicGroupCourseInfo.getFirstCourseTime())){
+            throw new BizException("请指定首次上课时间");
+        }
+        MusicGroup musicGroup = musicGroupDao.get(onlineMusicGroupCourseInfo.getMusicGroupId());
+        if(Objects.isNull(musicGroupDao)){
+            throw new BizException("乐团不存在");
+        }
+        SysUser student = studentDao.lockUserReturnInfo(onlineMusicGroupCourseInfo.getStudentId());
+        if(Objects.isNull(student)){
+            throw new BizException("学员不存在");
+        }
+        Teacher teacher = teacherDao.get(onlineMusicGroupCourseInfo.getTeacherId());
+        if(Objects.isNull(teacher)){
+            throw new BizException("教师不存在");
+        }
+        Subject subject = subjectDao.get(onlineMusicGroupCourseInfo.getSubjectId());
+        if(Objects.isNull(subjectDao)){
+            throw new BizException("声部不存在");
+        }
+        Set<String> holidayDays = new HashSet<>();
 
+        if (onlineMusicGroupCourseInfo.isSkipHoliday()) {
+            SysConfig holidaySetting = sysConfigService.findByParamName(SysConfigService.HOLIDAY_SETTING);
+            if(Objects.nonNull(holidaySetting)&& StringUtils.isNotBlank(holidaySetting.getParanValue())){
+                holidayDays = new HashSet<>(JSON.parseArray(holidaySetting.getParanValue(), String.class));
+            }
+        }
     }
 }

+ 7 - 2
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -2831,8 +2831,13 @@
                cs.status_
         FROM course_schedule cs
                  LEFT JOIN course_schedule_evaluate cse ON cs.id_ = cse.course_schedule_id_
-        WHERE cs.music_group_id_ = #{groupId}
-          AND cs.group_type_ = #{groupType}
+        WHERE cs.group_type_ = #{groupType}
+        <if test="groupId != null">
+            AND cs.music_group_id_ = #{groupId}
+        </if>
+        <if test="classGroupId != null">
+            AND cs.class_group_id_ = #{classGroupId}
+        </if>
         GROUP BY cs.id_
         ORDER BY cs.class_date_, cs.start_class_time_ ASC
     </select>

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

@@ -37,6 +37,12 @@
         UPDATE
     </select>
 
+    <select id="lockUserReturnInfo" resultMap="com.ym.mec.biz.dal.dao.TeacherDao.SysUser">
+        SELECT *
+        FROM sys_user
+        WHERE id_ = #{userId} FOR UPDATE
+    </select>
+
     <!-- 向数据库增加一条记录 -->
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.Student" useGeneratedKeys="true" keyColumn="id"
             keyProperty="id">