Browse Source

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

zouxuan 4 years ago
parent
commit
fd31dd2d07

+ 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);
             }
         }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/DegreeRegistrationServiceImpl.java

@@ -133,7 +133,7 @@ public class DegreeRegistrationServiceImpl extends BaseServiceImpl<Integer, Degr
                     if (orders != null && orders.size() > 0) {
                         List<StudentPaymentOrderDetail> studentPaymentOrderDetails = studentPaymentOrderDetailDao.getOrderDetail(orders.get(0).getId());
                         Map<String, Object> result = new HashMap<>();
-                        result.put("degree", degreeRegistration);
+                        result.put("degree", degree);
                         if(!CollectionUtils.isEmpty(studentPaymentOrderDetails)){
                             result.put("additionCourseInfo", studentPaymentOrderDetails.get(0).getGoodsIdList());
                         }

+ 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">

+ 18 - 0
mec-student/src/main/java/com/ym/mec/student/controller/DegreeController.java

@@ -30,6 +30,8 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.transaction.annotation.Isolation;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.*;
@@ -95,6 +97,22 @@ public class DegreeController extends BaseController {
         return degreeRegistrationService.pay(degreeRegistration);
     }
 
+    @ApiOperation(value = "考级报名检查")
+    @PostMapping("/check")
+    @Transactional(isolation = Isolation.READ_COMMITTED)
+    public HttpResponseResult check(@RequestBody DegreeRegistrationActivityDto degreeRegistration) throws Exception {
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if(Objects.isNull(user)){
+            return failed(HttpStatus.FORBIDDEN,"请登录");
+        }
+        degreeRegistration.setUserId(user.getId());
+        studentDao.getLocked(degreeRegistration.getUserId());
+        DegreeRegistration degree = degreeRegistrationDao.getWithSubjectAndLevel(degreeRegistration);
+        if(Objects.nonNull(degree) && degree.getStatus().equals(2)){
+            return failed(HttpStatus.CREATED, "您已报考过选择的考级项目");
+        }
+        return succeed();
+    }
 
     @ApiOperation(value = "查询收费列表")
     @GetMapping("/queryList")

+ 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 = "进行中乐团-修改-班级详情-学员班级调整-班级剩余课次")