Pārlūkot izejas kodu

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

zouxuan 5 gadi atpakaļ
vecāks
revīzija
1ee25a2906

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

@@ -772,4 +772,6 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @return
      */
     PageInfo<CourseListDto> queryStudentCourse(Map<String, Object> params);
+
+    int countVipGroupCourses(@Param("vipGroupId") Integer vipGroupId);
 }

+ 33 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -897,17 +897,20 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 	public void createVipGroupCourseScheInfo(Long vipGroupId,ClassGroup classGroup){
 		VipGroup vipGroupApplyBaseInfoDto = vipGroupDao.get(vipGroupId);
 		List<CourseSchedule> courseSchedules = JSON.parseArray(vipGroupApplyBaseInfoDto.getCourseSchedulesJson(),CourseSchedule.class);
-		courseScheduleService.batchAddCourseSchedule(courseSchedules);
+		int courseNum = courseScheduleDao.countVipGroupCourses(vipGroupId.intValue());
+		if(courseNum==0){
+			courseScheduleService.batchAddCourseSchedule(courseSchedules);
 
-		SysUser sysUser = sysUserFeignService.queryUserById(vipGroupApplyBaseInfoDto.getUserId());
+			ClassGroupTeacherSalary classGroupTeacherSalary = classGroupTeacherSalaryDao.findByVipGoupAndTeacher(vipGroupId.intValue(), vipGroupApplyBaseInfoDto.getUserId());
 
-		ClassGroupTeacherSalary classGroupTeacherSalary = classGroupTeacherSalaryDao.findByVipGoupAndTeacher(vipGroupId.intValue(), vipGroupApplyBaseInfoDto.getUserId());
+			//创建老师单节课课酬信息
+			courseScheduleTeacherSalaryService.createCourseScheduleTeacherVipSalary(vipGroupApplyBaseInfoDto,
+					courseSchedules,
+					classGroupTeacherSalary.getOnlineClassesSalary(),
+					classGroupTeacherSalary.getSalary());
+		}
 
-		//创建老师单节课课酬信息
-		courseScheduleTeacherSalaryService.createCourseScheduleTeacherVipSalary(vipGroupApplyBaseInfoDto,
-				courseSchedules,
-				classGroupTeacherSalary.getOnlineClassesSalary(),
-				classGroupTeacherSalary.getSalary());
+		SysUser sysUser = sysUserFeignService.queryUserById(vipGroupApplyBaseInfoDto.getUserId());
 
 		List<ClassGroupStudentMapper> classGroupStudents = classGroupStudentMapperDao.findByClassGroup(classGroup.getId());
 
@@ -1621,6 +1624,10 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			throw new BizException("班级不存在");
 		}
 
+		if(!vipGroup.getStatus().equals(VipGroupStatusEnum.PROGRESS)){
+			throw new BizException("此状态的vip课程不支持加课");
+		}
+
 		Date now=new Date();
 
 		BigDecimal onlineCoursePrice = courseScheduleStudentPaymentDao.findVipGroupCoursePrice(vipGroup.getId().intValue(),TeachModeEnum.ONLINE.getCode());
@@ -1737,6 +1744,22 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 		Date now=new Date();
 
+		if(vipGroup.getStatus().equals(VipGroupStatusEnum.APPLYING)){
+			List<CourseSchedule> courseSchedules = JSON.parseArray(vipGroup.getCourseSchedulesJson(),CourseSchedule.class);
+			int courseNum = courseScheduleDao.countVipGroupCourses(vipGroupId.intValue());
+			if(courseNum==0){
+				courseScheduleService.batchAddCourseSchedule(courseSchedules);
+
+				ClassGroupTeacherSalary classGroupTeacherSalary = classGroupTeacherSalaryDao.findByVipGoupAndTeacher(vipGroupId.intValue(), vipGroup.getUserId());
+
+				//创建老师单节课课酬信息
+				courseScheduleTeacherSalaryService.createCourseScheduleTeacherVipSalary(vipGroup,
+						courseSchedules,
+						classGroupTeacherSalary.getOnlineClassesSalary(),
+						classGroupTeacherSalary.getSalary());
+			}
+		}
+
 		List<CourseSchedule> surplusCourses = courseScheduleDao.findByClassGroupAndStatus(classGroup.getId(), CourseStatusEnum.NOT_START.getCode());
 		if(CollectionUtils.isEmpty(surplusCourses)){
 			throw new BizException("此vip课程没有剩余课程计划");
@@ -1811,6 +1834,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			classGroupStudentMapperDao.classGroupStudentsInsert(classGroupStudentMappers);
 		}
 
+		vipGroup.setStatus(VipGroupStatusEnum.PROGRESS);
+		vipGroupDao.update(vipGroup);
 		classGroupService.updateClassGroupInfo(classGroup.getId());
 
 		try {

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

@@ -1595,4 +1595,7 @@
         SELECT * FROM course_schedule
         WHERE class_group_id_=#{classGroupId} AND (del_flag_ = 0 OR del_flag_ IS NULL)
     </select>
+    <select id="countVipGroupCourses" resultType="int">
+        SELECT count(cs.id_) FROM course_schedule cs WHERE cs.music_group_id_ = #{vipGroupId} AND cs.group_type_='VIP'
+    </select>
 </mapper>