Joburgess 5 years ago
parent
commit
fe896afcf2

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentOrderDao.java

@@ -33,6 +33,15 @@ public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrde
                                               @Param("status") String status);
 
     /**
+     * @describe 统计报名人数
+     * @author Joburgess
+     * @date 2019/11/13
+     * @param musicGroupId: 乐团编号/vip课编号
+     * @return java.lang.Integer
+     */
+    Integer countStudentPaymentNum(@Param("musicGroupId") String musicGroupId);
+
+    /**
      * 查询乐团报名的订单
      *
      * @param userId

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

@@ -727,7 +727,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			classGroup.setStudentNum(classGroup.getStudentNum()+num);
 		}
 
-		if(classGroup.getStudentNum().equals(classGroup.getExpectStudentNum())&&updateVipStatus){
+		Integer studentPaymentNum=studentPaymentOrderDao.countStudentPaymentNum(vipGroupId.toString());
+
+		if(studentPaymentNum.equals(classGroup.getExpectStudentNum())&&updateVipStatus){
 			vipGroup.setStatus(VipGroupStatusEnum.FINISH);
 			vipGroupDao.update(vipGroup);
 			createVipGroupCourseScheInfo(vipGroupId);
@@ -758,15 +760,16 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 		List<ClassGroupStudentMapper> classGroupStudents = classGroupStudentMapperDao.findByClassGroup(classGroup.getId());
 
-		ImGroupMember[] imGroupMembers=new ImGroupMember[classGroupStudents.size()+1];
-		imGroupMembers[0]=new ImGroupMember(vipGroupApplyBaseInfoDto.getUserId().toString());
+		List<ImGroupMember> imGroupMemberList = new ArrayList<>();
+		imGroupMemberList.add(new ImGroupMember(vipGroupApplyBaseInfoDto.getUserId().toString()));
 		//生成学生单课缴费信息
 		for (int i=0;i<classGroupStudents.size();i++) {
 			courseScheduleStudentPaymentService.createCourseScheduleStudentPaymentForVipGroup(vipGroupId,classGroupStudents.get(i).getUserId());
-			imGroupMembers[i+1]=new ImGroupMember(classGroupStudents.get(i).getUserId().toString());
+			imGroupMemberList.add(new ImGroupMember(classGroupStudents.get(i).getUserId().toString()));
 		}
 
 		try {
+			ImGroupMember[] imGroupMembers = imGroupMemberList.toArray(new ImGroupMember[imGroupMemberList.size()]);
 			// 创建群组
 			imFeignService.groupCreate(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
 
@@ -871,6 +874,12 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		Long vipGroupId=Long.parseLong(order.getMusicGroupId());
 		Integer userId = order.getUserId();
 		boolean isOk=order.getStatus().equals(DealStatusEnum.SUCCESS);
+
+		StudentPaymentOrder studentPaymentOrder = studentPaymentOrderDao.get(order.getId());
+		if(studentPaymentOrder.getStatus().equals(DealStatusEnum.SUCCESS)){
+			return;
+		}
+
 		studentPaymentOrderDao.update(order);
 
 		//将学生加入到班级,更新班级报名状态及人数信息

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

@@ -251,5 +251,8 @@
         AND status_=#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
         <![CDATA[ AND create_time_ <= ]]> #{beforeTime}
     </select>
+    <select id="countStudentPaymentNum" resultType="int">
+        select count(1) from student_payment_order where  music_group_id_=#{musicGroupId}
+    </select>
 
 </mapper>