瀏覽代碼

update:临时合课相关的处理

yonge 4 年之前
父節點
當前提交
654f01c469

+ 2 - 20
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupStudentMapperServiceImpl.java

@@ -38,7 +38,6 @@ import com.ym.mec.biz.dal.entity.StudentRegistration;
 import com.ym.mec.biz.dal.entity.TeacherDefaultMusicGroupSalary;
 import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
 import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
-import com.ym.mec.biz.dal.enums.CourseStatusEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.biz.service.ClassGroupRelationService;
@@ -135,25 +134,8 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
         List<CourseSchedule> courseScheduleList = courseScheduleService.findNoStartCoursesByClassGroupId(classGroupId);
         if (courseScheduleList.size() > 0) {
 
-            //临时合课的情况
-            List<Long> tempMergedCourseIdList = new ArrayList<Long>();
-            for(CourseSchedule courseSchedule : courseScheduleList){
-            	if(courseSchedule.getNewCourseId() != null){
-            		tempMergedCourseIdList.add(courseSchedule.getNewCourseId());
-            	}
-            }
-            
-            //判断是否已结束
-            List<CourseSchedule> tempMergedCourseScheduleList = courseScheduleDao.findByCourseScheduleIds(tempMergedCourseIdList);
-            tempMergedCourseIdList.clear();
-            for(CourseSchedule courseSchedule : tempMergedCourseScheduleList){
-            	if(courseSchedule.getStatus() == CourseStatusEnum.NOT_START){
-            		tempMergedCourseIdList.add(courseSchedule.getId());
-            	}
-            }
-            
-            tempMergedCourseIdList.addAll(courseScheduleList.stream().map(CourseSchedule :: getId).collect(Collectors.toList()));
-            if(tempMergedCourseIdList.size() > 0){
+            List<Long> tempMergedCourseIdList = courseScheduleList.stream().map(CourseSchedule :: getId).collect(Collectors.toList());
+            if(tempMergedCourseIdList != null && tempMergedCourseIdList.size() > 0){
             	courseScheduleStudentPaymentDao.deleteStudentCourseSchedule(userId, tempMergedCourseIdList);
             }
         }

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

@@ -1611,6 +1611,12 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
             studentRegistrationDao.update(studentRegistration);
             
+            //操作人
+            SysUser operator = sysUserFeignService.queryUserInfo();
+            
+            studentRegistrationService.updateUserSurplusCourseFee(userId, musicGroupId, studentRegistration.getSurplusCourseFee().negate(), reason, operator.getId());
+            
+            
             //更新服务指标、运营指标
             int remainCourseNum = courseScheduleStudentPaymentDao.countStudentNotStartCourseNumWithCourseType(userId, null);
             if(remainCourseNum == 0){
@@ -1748,6 +1754,11 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
         studentRegistrationDao.update(studentRegistration);
         
+        //操作人
+        SysUser operator = sysUserFeignService.queryUserInfo();
+        
+        studentRegistrationService.updateUserSurplusCourseFee(userId, musicGroupId, studentRegistration.getSurplusCourseFee().negate(), reason, operator.getId());
+        
         //更新服务指标、运营指标
         int remainCourseNum = courseScheduleStudentPaymentDao.countStudentNotStartCourseNumWithCourseType(userId, null);
         if(remainCourseNum == 0){

+ 15 - 4
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -1559,12 +1559,17 @@
     </select>
     <!-- 查找班级未开始的课程 -->
     <select id="findCoursesByClassGroupId" resultMap="CourseSchedule">
-        SELECT *
-        FROM course_schedule
+        SELECT * FROM course_schedule
         WHERE class_group_id_ = #{classGroupId}
         <if test="status != null">
             and status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
         </if>
+        union
+        select ncs.* from course_schedule cs left join course_schedule ncs on ncs.id_ = cs.new_course_id_
+        where cs.new_course_id_ &gt; 0 and cs.class_group_id_ = #{classGroupId}
+        <if test="status != null">
+            and ncs.status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+        </if>
     </select>
 
     <resultMap id="CourseAttendanceDetailHeadInfoDto" type="com.ym.mec.biz.dal.dto.CourseAttendanceDetailHeadInfoDto">
@@ -3330,9 +3335,15 @@
     </select>
 
     <select id="queryRemainCourseTypeDuration" resultMap="RemainCourseTypeDurationDto">
-        SELECT cs.type_ course_type_,SUM(TIMESTAMPDIFF(MINUTE,STR_TO_DATE(concat(cs.class_date_,' ',cs.start_class_time_),'%Y-%m-%d %H:%i:%s'),
-        STR_TO_DATE(concat(cs.class_date_,' ',cs.end_class_time_),'%Y-%m-%d %H:%i:%s'))) remain_minutes_,sum(case when cs.new_course_id_ is null then 0 else 1 end) temp_merged_course_num_
+		SELECT a.course_type_,SUM(remain_minutes_) remain_minutes_ FROM 
+		(SELECT cs.type_ course_type_,SUM(TIMESTAMPDIFF(MINUTE,STR_TO_DATE(concat(cs.class_date_,' ',cs.start_class_time_),'%Y-%m-%d %H:%i:%s'),
+        STR_TO_DATE(concat(cs.class_date_,' ',cs.end_class_time_),'%Y-%m-%d %H:%i:%s'))) remain_minutes_
 		from course_schedule cs where FIND_IN_SET(cs.class_group_id_,#{classgroupId}) and cs.status_ = 'NOT_START' group by cs.type_
+		UNION  
+		SELECT ncs.type_ course_type_,SUM(TIMESTAMPDIFF(MINUTE,STR_TO_DATE(concat(ncs.class_date_,' ',ncs.start_class_time_),'%Y-%m-%d %H:%i:%s'),
+        STR_TO_DATE(concat(ncs.class_date_,' ',ncs.end_class_time_),'%Y-%m-%d %H:%i:%s'))) remain_minutes_ FROM course_schedule cs LEFT JOIN course_schedule ncs ON ncs.id_ = cs.new_course_id_ 
+		  WHERE FIND_IN_SET(cs.class_group_id_,#{classgroupId}) and cs.new_course_id_ &gt; 0 AND ncs.status_ = 'NOT_START' GROUP BY ncs.type_) a
+		group BY a.course_type_
     </select>
 
     <resultMap id="CourseRepeatCheckDto" type="com.ym.mec.biz.dal.dto.CourseRepeatCheckDto">

+ 2 - 12
mec-web/src/main/java/com/ym/mec/web/controller/ClassGroupController.java

@@ -1,14 +1,11 @@
 package com.ym.mec.web.controller;
 
-import com.ym.mec.biz.dal.dto.MergeClassSplitClassAffirmDto;
-
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 
-import java.lang.reflect.InvocationTargetException;
 import java.util.Date;
 import java.util.List;
 
@@ -27,7 +24,7 @@ import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.ClassGroup4MixDto;
 import com.ym.mec.biz.dal.dto.HighClassGroupDto;
-import com.ym.mec.biz.dal.dto.RemainCourseTypeDurationDto;
+import com.ym.mec.biz.dal.dto.MergeClassSplitClassAffirmDto;
 import com.ym.mec.biz.dal.dto.TestDto;
 import com.ym.mec.biz.dal.entity.ClassGroup;
 import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
@@ -41,7 +38,6 @@ import com.ym.mec.biz.service.ClassGroupService;
 import com.ym.mec.biz.service.ClassGroupTeacherMapperService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
-import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.QueryInfo;
 
@@ -337,13 +333,7 @@ public class ClassGroupController extends BaseController {
     @PreAuthorize("@pcs.hasPermissions('classGroup/queryRemainCourseTypeDuration')")
     public HttpResponseResult queryRemainCourseTypeDuration(String classGroupIdList){
     	
-    	List<RemainCourseTypeDurationDto> remainCourseTypeDurationDtoList = classGroupService.queryRemainCourseTypeDuration(classGroupIdList);
-    	for (RemainCourseTypeDurationDto dto : remainCourseTypeDurationDtoList) {
-			if(dto.getTempMergedCourseNum() > 0){
-				throw new BizException("班级中含有临时合并的课程,不能");
-			}
-		}
-        return succeed(remainCourseTypeDurationDtoList);
+        return succeed(classGroupService.queryRemainCourseTypeDuration(classGroupIdList));
     }
 
     @ApiOperation(value = "进行中乐团-修改-班级详情-学员班级调整-班级剩余课次")