| 
					
				 | 
			
			
				@@ -1,15 +1,97 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 package com.ym.mec.biz.service.impl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.io.IOException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.math.BigDecimal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.ArrayList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.Arrays; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.Date; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.HashMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.HashSet; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.Iterator; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.Map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.Set; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.stream.Collectors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import javax.annotation.Resource; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.slf4j.Logger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.slf4j.LoggerFactory; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.alibaba.fastjson.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.auth.api.client.SysUserFeignService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.auth.api.entity.SysUser; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.auth.api.entity.SysUserRole; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.dao.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.dto.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.entity.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.enums.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.dao.GoodsDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.dao.MusicGroupDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.dao.MusicGroupSubjectPlanDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.dao.StudentDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.dao.StudentPaymentOrderDetailDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.dao.StudentRegistrationDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.dao.SubjectChangeDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.dao.SubjectDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.dao.SysConfigDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.dao.SysUserCashAccountDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.dao.TeacherDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.dto.CourseFormDto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.dto.StudentAddDto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.dto.StudentApplyDetailDto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.dto.StudentFeeDetailDto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.dto.StudentInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.dto.StudentMusicDetailDto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.entity.ClassGroup; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.entity.ClassGroupStudentMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.entity.CooperationOrgan; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.entity.CourseSchedule; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.entity.CourseScheduleStudentPayment; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.entity.Goods; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.entity.MusicGroup; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.entity.MusicGroupStudentFee; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.entity.Student; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.entity.StudentPaymentOrder; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.entity.StudentPaymentOrderDetail; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.entity.StudentRegistration; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.entity.Subject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.entity.SubjectChange; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+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.KitGroupPurchaseTypeEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+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.enums.StudentMusicGroupStatusEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.page.StudentRegistrationQueryInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.service.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.service.ClassGroupService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.service.ClassGroupStudentMapperService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.service.ContractService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.service.CourseScheduleService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.service.CourseScheduleStudentPaymentService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.service.MusicGroupPaymentCalenderService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.service.MusicGroupSubjectPlanService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.service.SellOrderService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.service.StudentPaymentOrderDetailService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.service.StudentPaymentOrderService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.service.StudentRegistrationService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.service.SubjectService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.service.SysConfigService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.service.SysMessageService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.service.SysUserCashAccountDetailService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.service.SysUserCashAccountService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.common.dal.BaseDAO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.common.entity.ImGroupMember; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.common.entity.ImGroupModel; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -22,23 +104,9 @@ import com.ym.mec.common.service.impl.BaseServiceImpl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.im.ImFeignService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.thirdparty.eseal.ESealPlugin; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.thirdparty.message.MessageSenderPluginContext; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.thirdparty.user.realname.RealnameAuthenticationPluginContext; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.thirdparty.user.realname.provider.LinkfaceRealnameAuthenticationPlugin; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.util.collection.MapUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.util.date.DateUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.util.http.HttpUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.slf4j.Logger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.slf4j.LoggerFactory; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.springframework.beans.factory.annotation.Value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import javax.annotation.Resource; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.io.IOException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.math.BigDecimal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.stream.Collectors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @Service 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, StudentRegistration> implements StudentRegistrationService { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -216,81 +284,58 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Transactional(rollbackFor = Exception.class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public StudentRegistration addStudent(StudentRegistration studentRegistration) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        String key = "_student_registration"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        long threadId = Thread.currentThread().getId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!redisCache.getLocked(key, threadId, 10)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            throw new BizException("系统繁忙,请稍后再试"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    	Integer userId = studentRegistration.getUserId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    	Student student = studentDao.getLocked(userId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    	if (student == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        	throw new BizException("查询学生信息失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Date date = new Date(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Integer userId = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            SysUser sysUser = studentRegistrationDao.getSysUserByPhone(studentRegistration.getParentsPhone()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (sysUser == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                sysUser = new SysUser(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                sysUser.setPhone(studentRegistration.getParentsPhone()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                sysUser.setCreateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                sysUser.setUpdateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                sysUser.setLockFlag(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                sysUser.setDelFlag(com.ym.mec.auth.api.enums.YesOrNoEnum.NO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                sysUser.setUserType("STUDENT"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                sysUser.setGender(studentRegistration.getGender()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                sysUser.setOrganId(studentRegistration.getOrganId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                sysUser.setRealName(studentRegistration.getParentsName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                sysUser.setUsername(studentRegistration.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                sysUser.setIdCardNo(studentRegistration.getIdCardNo()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                sysUser.setBirthdate(studentRegistration.getBirthdate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                teacherDao.addSysUser(sysUser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                userId = sysUser.getId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                // 添加用户现金账户 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                sysUserCashAccountDao.insert(new SysUserCashAccount(userId, "CNY")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                // 注册到融云 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (StringUtils.isEmpty(sysUser.getAvatar())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    sysUser.setAvatar(sysConfigDao.findConfigValue(SysConfigService.USER_DEFAULT_HEAD_URL)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                ImResult register = imFeignService.register(new ImUserModel(userId.toString(), sysUser.getUsername(), sysUser.getAvatar())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                sysUser.setImToken(register.getToken()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (StringUtils.isNotEmpty(sysUser.getUsername())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (!sysUser.getUsername().equals(studentRegistration.getName())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        throw new BizException("操作失败:账户已被注册"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (!sysUser.getUserType().contains("STUDENT")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    sysUser.setUserType(sysUser.getUserType() + ",STUDENT"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                sysUser.setPhone(studentRegistration.getParentsPhone()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                sysUser.setOrganId(studentRegistration.getOrganId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                sysUser.setRealName(studentRegistration.getParentsName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                sysUser.setUsername(studentRegistration.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                sysUser.setGender(studentRegistration.getGender()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                sysUser.setBirthdate(studentRegistration.getBirthdate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                sysUser.setCreateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                sysUser.setUpdateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                teacherDao.updateUser(sysUser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            studentRegistration.setActualSubjectId(studentRegistration.getSubjectId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            studentRegistration.setCreateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            studentRegistration.setUpdateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            studentRegistration.setUserId(sysUser.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            studentRegistrationDao.insert(studentRegistration); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            studentRegistrationDao.updateCurrentClass(studentRegistration); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 增加报名学生数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            musicGroupSubjectPlanService.addApplyStudentNum(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId(), 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 报名成功后,发送短信 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // String studentApplyUrl = sysConfigDao.findConfigValue(SysConfigService.STUDENT_APPLY_URL) + studentRegistration.getMusicGroupId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            String serverPhone = sysConfigDao.findConfigValue(SysConfigService.SERVER_PHONE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Subject subject = subjectDao.get(studentRegistration.getActualSubjectId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Map<Integer, String> map = new HashMap<>(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            map.put(studentRegistration.getUserId(), studentRegistration.getParentsPhone()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.SMS_APPLY_MESSAGE, map, null, 0, "", "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    studentRegistration.getParentsName(), subject.getName(), serverPhone); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } finally { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            redisCache.releaseLocked(key, threadId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        StudentRegistration hasReg = getByPhoneAndMusicGroupId(studentRegistration.getMusicGroupId(), studentRegistration.getParentsPhone()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (hasReg != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        	throw new BizException("该乐团您已报名"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Date date = new Date(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SysUser sysUser = sysUserFeignService.queryUserByMobile(studentRegistration.getParentsPhone()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (sysUser == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            throw new BizException("用户信息查询失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!sysUser.getUserType().contains("STUDENT")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sysUser.setUserType(sysUser.getUserType() + ",STUDENT"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sysUser.setPhone(studentRegistration.getParentsPhone()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sysUser.setOrganId(studentRegistration.getOrganId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sysUser.setRealName(studentRegistration.getParentsName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sysUser.setUsername(studentRegistration.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sysUser.setGender(studentRegistration.getGender()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sysUser.setBirthdate(studentRegistration.getBirthdate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sysUser.setCreateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sysUser.setUpdateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        teacherDao.updateUser(sysUser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        studentRegistration.setActualSubjectId(studentRegistration.getSubjectId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        studentRegistration.setCreateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        studentRegistration.setUpdateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        studentRegistration.setUserId(sysUser.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.APPLY); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        studentRegistrationDao.insert(studentRegistration); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 增加报名学生数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        musicGroupSubjectPlanService.addApplyStudentNum(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId(), 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 报名成功后,发送短信 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // String studentApplyUrl = sysConfigDao.findConfigValue(SysConfigService.STUDENT_APPLY_URL) + studentRegistration.getMusicGroupId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String serverPhone = sysConfigDao.findConfigValue(SysConfigService.SERVER_PHONE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Subject subject = subjectDao.get(studentRegistration.getActualSubjectId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<Integer, String> map = new HashMap<>(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        map.put(studentRegistration.getUserId(), studentRegistration.getParentsPhone()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.SMS_APPLY_MESSAGE, map, null, 0, "", "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                studentRegistration.getParentsName(), subject.getName(), serverPhone); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return studentRegistration; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |