Parcourir la source

Merge remote-tracking branch 'origin/master'

周箭河 il y a 5 ans
Parent
commit
6317d3387e

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

@@ -365,6 +365,17 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     List<CourseSchedule> findVipGroupCourseSchedules(@Param("vipGroupId") Long vipGroupId);
 
     /**
+     * @describe 获取对应乐团下未开始的排课计划编号列表
+     * @author Joburgess
+     * @date 2019/12/5
+     * @param groupId: 乐团编号
+     * @param groupType: 乐团类型
+     * @return java.util.List<java.lang.Integer>
+     */
+    List<Long> findVipGroupNotStartCourseScheduleIds(@Param("groupId") String groupId,
+                                                        @Param("groupType") String groupType);
+
+    /**
      * @return java.lang.String
      * @Author: Joburgess
      * @Date: 2019/10/16

+ 2 - 11
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -16,6 +16,7 @@ import java.util.stream.Collectors;
 
 import javax.annotation.Resource;
 
+import com.ym.mec.biz.dal.enums.*;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -57,16 +58,6 @@ import com.ym.mec.biz.dal.entity.StudentRegistration;
 import com.ym.mec.biz.dal.entity.Subject;
 import com.ym.mec.biz.dal.entity.SysUserCashAccount;
 import com.ym.mec.biz.dal.entity.SysUserCashAccountDetail;
-import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
-import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
-import com.ym.mec.biz.dal.enums.DealStatusEnum;
-import com.ym.mec.biz.dal.enums.GoodsType;
-import com.ym.mec.biz.dal.enums.GroupType;
-import com.ym.mec.biz.dal.enums.MessageTypeEnum;
-import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
-import com.ym.mec.biz.dal.enums.OrderTypeEnum;
-import com.ym.mec.biz.dal.enums.PaymentStatusEnum;
-import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
 import com.ym.mec.biz.dal.page.StudentRegistrationQueryInfo;
 import com.ym.mec.biz.service.ClassGroupRelationService;
 import com.ym.mec.biz.service.ClassGroupService;
@@ -538,7 +529,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         String musicGroupId = studentRegistration.getMusicGroupId();
 
         StudentRegistration phoneAndMusicGroupId = studentRegistrationDao.getByPhoneAndMusicGroupId(musicGroupId, studentRegistration.getParentsPhone());
-        if (phoneAndMusicGroupId != null) {
+        if (phoneAndMusicGroupId != null && phoneAndMusicGroupId.getMusicGroupStatus() != ClassGroupStudentStatusEnum.QUIT) {
             throw new Exception("该学员已存在");
         } else {
             SysUser sysUser = studentRegistrationDao.getSysUserByPhone(studentRegistration.getParentsPhone());

+ 3 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -859,7 +859,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		if(studentPaymentNum.equals(classGroup.getExpectStudentNum())&&updateVipStatus){
 			classGroup.setStudentNum(studentPaymentNum);
 			classGroup.setDelFlag(0);
-			vipGroup.setStatus(VipGroupStatusEnum.PROGRESS);
+			vipGroup.setStatus(VipGroupStatusEnum.APPLYING_END);
 			vipGroupDao.update(vipGroup);
 			createVipGroupCourseScheInfo(vipGroupId,classGroup);
 		}
@@ -1373,7 +1373,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			vipGroupSalaryBaseInfo.setTotalFeeDeduction(new BigDecimal(0));
 		}
 
-		BigDecimal totalCoursePrice= studentPaymentOrderDao.sumGroupIncomeFee(classGroup.getId().toString(),GroupType.VIP.getCode());
+		BigDecimal totalCoursePrice= studentPaymentOrderDao.sumGroupIncomeFee(vipGroup.getId().toString(),GroupType.VIP.getCode());
 		if(Objects.isNull(totalCoursePrice)){
 			totalCoursePrice=new BigDecimal(0);
 		}
@@ -1413,8 +1413,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
     	if(vipGroup.getStatus()==VipGroupStatusEnum.CANCEL){
     		throw new BizException("该课程已结束或者已被停止,无法进行此操作");
 		}
-		List<CourseSchedule> vipGroupCourseSchedules = courseScheduleDao.findVipGroupCourseSchedules(vipGroupId);
-		List<Long> courseScheduleIds = vipGroupCourseSchedules.stream().map(CourseSchedule::getId).collect(Collectors.toList());
+		List<Long> courseScheduleIds = courseScheduleDao.findVipGroupNotStartCourseScheduleIds(vipGroupId.toString(),GroupType.VIP.getCode());
     	if(vipGroup.getStatus()==VipGroupStatusEnum.NOT_START){
 			vipGroup.setStatus(VipGroupStatusEnum.CANCEL);
     		vipGroupDao.update(vipGroup);

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

@@ -206,6 +206,7 @@
         <foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
             #{courseScheduleId}
         </foreach>
+        AND CONCAT( cs.class_date_, ' ', cs.start_class_time_ ) &gt; NOW()
     </delete>
 
     <!-- 分页查询 -->
@@ -842,6 +843,15 @@
           cs.music_group_id_ =#{vipGroupId} AND cs.group_type_ = 'VIP'
         ORDER BY start_class_time_
     </select>
+    <select id="findVipGroupNotStartCourseScheduleIds" resultType="long">
+        SELECT
+            cs.id_
+        FROM
+        	course_schedule cs
+        WHERE
+          cs.music_group_id_ =#{groupId} AND cs.group_type_ = #{groupType}
+          AND CONCAT(cs.class_date_,' ',cs.start_class_time_) &gt; NOW()
+    </select>
     <select id="findByClassGroupAndDate" resultMap="CourseSchedule">
         SELECT
         id_,

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

@@ -93,7 +93,7 @@
 	</delete>
 	
     <delete id="deleteByUserIdAndMusicGroupId" parameterType="map">
-		DELETE FROM music_group_student_fee_ WHERE userId = #{userId} and music_group_id_ = #{musicGroupId}
+		DELETE FROM music_group_student_fee_ WHERE user_id_ = #{userId} and music_group_id_ = #{musicGroupId}
 	</delete>
 
     <!-- 分页查询 -->

+ 17 - 8
mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml

@@ -110,11 +110,16 @@
 	</select>
 
     <select id="findStudentVipGroups" resultMap="studentManageVipGroup">
-        SELECT CONCAT(cs.class_date_," ",cs.start_class_time_) course_date_,cs.teach_mode_,cs.status_ course_status_,cs.name_ class_group_name_
-        FROM course_schedule cs
-        WHERE cs.group_type_ = 'VIP'
+        SELECT CONCAT(cs.class_date_," ",cs.start_class_time_) course_date_,cs.teach_mode_,
+        cs.status_ course_status_,cs.name_ class_group_name_
+        FROM course_schedule_student_payment cssp
+        LEFT JOIN course_schedule cs ON cssp.course_schedule_id_ = cs.id_
+        WHERE cssp.group_type_ = 'VIP'
         <if test="vipGroupId != null">
-            AND cs.music_group_id_ = #{vipGroupId}
+            AND cssp.music_group_id_ = #{vipGroupId}
+        </if>
+        <if test="studentId != null">
+            AND cssp.user_id_ = #{studentId}
         </if>
         <if test="classGroupName != null">
             AND cs.name_ LIKE CONCAT('%',#{classGroupName},'%')
@@ -124,11 +129,15 @@
     </select>
 
     <select id="countStudentVipGroups" resultType="java.lang.Integer">
-        SELECT COUNT(cs.id_)
-        FROM course_schedule cs
-        WHERE cs.group_type_ = 'VIP'
+        SELECT COUNT(cssp.id_)
+        FROM course_schedule_student_payment cssp
+        LEFT JOIN course_schedule cs ON cssp.course_schedule_id_ = cs.id_
+        WHERE cssp.group_type_ = 'VIP'
         <if test="vipGroupId != null">
-            AND cs.music_group_id_ = #{vipGroupId}
+            AND cssp.music_group_id_ = #{vipGroupId}
+        </if>
+        <if test="studentId != null">
+            AND cssp.user_id_ = #{studentId}
         </if>
         <if test="classGroupName != null">
             AND cs.name_ LIKE CONCAT('%',#{classGroupName},'%')