|
@@ -705,159 +705,126 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
StudentRegistration phoneAndMusicGroupId = studentRegistrationDao.getByPhoneAndMusicGroupId(musicGroupId, studentRegistration.getParentsPhone());
|
|
|
if (phoneAndMusicGroupId != null && phoneAndMusicGroupId.getMusicGroupStatus() != StudentMusicGroupStatusEnum.QUIT && phoneAndMusicGroupId.getMusicGroupStatus() != StudentMusicGroupStatusEnum.APPLY) {
|
|
|
throw new BizException("该学员已存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ SysUser sysUser = studentRegistrationDao.getSysUserByPhone(studentRegistration.getParentsPhone());
|
|
|
+ MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
|
|
|
+ Integer userId;
|
|
|
+ if (sysUser == null) {
|
|
|
+ //新增user
|
|
|
+ sysUser = new SysUser();
|
|
|
+ sysUser.setPhone(studentRegistration.getParentsPhone());
|
|
|
+// sysUser.setRealName(studentRegistration.getParentsName());
|
|
|
+ sysUser.setUsername(studentRegistration.getName());
|
|
|
+ sysUser.setGender(studentRegistration.getGender());
|
|
|
+ sysUser.setUserType("STUDENT");
|
|
|
+// sysUser.setIdCardNo(studentRegistration.getIdCardNo());
|
|
|
+ sysUser.setOrganId(musicGroup.getOrganId());
|
|
|
+ sysUser.setBirthdate(studentRegistration.getBirthdate());
|
|
|
+ teacherDao.addSysUser(sysUser);
|
|
|
+ userId = sysUser.getId();
|
|
|
+ studentDao.insert(new Student(userId, studentRegistration.getSubjectId().toString()));
|
|
|
+ //添加用户现金账户
|
|
|
+ sysUserCashAccountDao.insert(new SysUserCashAccount(userId, "CNY"));
|
|
|
+ ImResult register = imFeignService.register(new ImUserModel(userId.toString(), sysUser.getUsername(), null));
|
|
|
+ sysUser.setImToken(register.getToken());
|
|
|
+ teacherDao.updateUser(sysUser);
|
|
|
} else {
|
|
|
- SysUser sysUser = studentRegistrationDao.getSysUserByPhone(studentRegistration.getParentsPhone());
|
|
|
- MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
|
|
|
- Integer userId;
|
|
|
- if (sysUser == null) {
|
|
|
- //新增user
|
|
|
- sysUser = new SysUser();
|
|
|
- sysUser.setPhone(studentRegistration.getParentsPhone());
|
|
|
-// sysUser.setRealName(studentRegistration.getParentsName());
|
|
|
- sysUser.setUsername(studentRegistration.getName());
|
|
|
- sysUser.setGender(studentRegistration.getGender());
|
|
|
- sysUser.setUserType("STUDENT");
|
|
|
-// sysUser.setIdCardNo(studentRegistration.getIdCardNo());
|
|
|
- sysUser.setOrganId(musicGroup.getOrganId());
|
|
|
- sysUser.setBirthdate(studentRegistration.getBirthdate());
|
|
|
- teacherDao.addSysUser(sysUser);
|
|
|
- userId = sysUser.getId();
|
|
|
- studentDao.insert(new Student(userId, studentRegistration.getSubjectId().toString()));
|
|
|
- //添加用户现金账户
|
|
|
- sysUserCashAccountDao.insert(new SysUserCashAccount(userId, "CNY"));
|
|
|
- ImResult register = imFeignService.register(new ImUserModel(userId.toString(), sysUser.getUsername(), null));
|
|
|
- sysUser.setImToken(register.getToken());
|
|
|
- teacherDao.updateUser(sysUser);
|
|
|
- } else {
|
|
|
- if(musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE){
|
|
|
- //该学员是否在其他的会员团
|
|
|
- boolean hasMemberGroup = studentRegistrationDao.checkHasMemberGroup(musicGroupId,sysUser.getId());
|
|
|
- if(hasMemberGroup){
|
|
|
- throw new BizException("操作失败:该学员已在其他系统收费乐团中,不可报名该乐团请联系教务老师");
|
|
|
- }
|
|
|
- }
|
|
|
- StudentRegistration oldReg = studentRegistrationDao.getByUserIdAndMusicGroupId(musicGroupId, sysUser.getId());
|
|
|
- if (oldReg != null && oldReg.getMusicGroupStatus() != StudentMusicGroupStatusEnum.QUIT && oldReg.getMusicGroupStatus() != StudentMusicGroupStatusEnum.APPLY) {
|
|
|
- throw new BizException("该学员已存在,原手机号为" + oldReg.getParentsPhone());
|
|
|
- }
|
|
|
- if (oldReg != null) {
|
|
|
- phoneAndMusicGroupId = oldReg;
|
|
|
- }
|
|
|
- if (StringUtils.isNotEmpty(sysUser.getUsername())) {
|
|
|
- if (!sysUser.getUsername().equals(studentRegistration.getName())) {
|
|
|
- throw new BizException("操作失败:账户已被注册");
|
|
|
- }
|
|
|
- }
|
|
|
- if (!sysUser.getUserType().contains("STUDENT")) {
|
|
|
- sysUser.setUserType(sysUser.getUserType() + ",STUDENT");
|
|
|
+ if(musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE){
|
|
|
+ //该学员是否在其他的会员团
|
|
|
+ boolean hasMemberGroup = studentRegistrationDao.checkHasMemberGroup(musicGroupId,sysUser.getId());
|
|
|
+ if(hasMemberGroup){
|
|
|
+ throw new BizException("操作失败:该学员已在其他系统收费乐团中,不可报名该乐团请联系教务老师");
|
|
|
}
|
|
|
- sysUser.setPhone(studentRegistration.getParentsPhone());
|
|
|
-// sysUser.setRealName(studentRegistration.getParentsName());
|
|
|
- sysUser.setUsername(studentRegistration.getName());
|
|
|
- sysUser.setGender(studentRegistration.getGender());
|
|
|
- sysUser.setOrganId(musicGroup.getOrganId());
|
|
|
- sysUser.setBirthdate(studentRegistration.getBirthdate());
|
|
|
- teacherDao.updateUser(sysUser);
|
|
|
- userId = sysUser.getId();
|
|
|
- Student student = studentDao.get(userId);
|
|
|
- if (student == null) {
|
|
|
- studentDao.insert(new Student(userId, studentRegistration.getSubjectId().toString()));
|
|
|
- } else if (StringUtils.isEmpty(student.getSubjectIdList())) {
|
|
|
- student.setSubjectIdList(studentRegistration.getSubjectId().toString());
|
|
|
- student.setUpdateTime(date);
|
|
|
- studentDao.update(student);
|
|
|
- } else if (StringUtils.isNotEmpty(student.getSubjectIdList())) {
|
|
|
- String[] split = student.getSubjectIdList().split(",");
|
|
|
- List<String> list = new ArrayList<>(Arrays.asList(split));
|
|
|
- if (!list.contains(studentRegistration.getSubjectId().toString())) {
|
|
|
- list.add(studentRegistration.getSubjectId().toString());
|
|
|
- student.setSubjectIdList(StringUtils.join(list, ","));
|
|
|
- student.setUpdateTime(date);
|
|
|
- studentDao.update(student);
|
|
|
- }
|
|
|
- }
|
|
|
- imGroupDao.updateNickname(userId, sysUser.getUsername());
|
|
|
- imGroupDao.updateUserFriendNickname(userId, sysUser.getUsername());
|
|
|
}
|
|
|
- MusicGroupStudentFee studentFeeDaoByUser = musicGroupStudentFeeDao.findByUser(userId, musicGroupId);
|
|
|
- if (studentFeeDaoByUser != null) {
|
|
|
- throw new BizException("该学员已存在");
|
|
|
+ StudentRegistration oldReg = studentRegistrationDao.getByUserIdAndMusicGroupId(musicGroupId, sysUser.getId());
|
|
|
+ if (oldReg != null && oldReg.getMusicGroupStatus() != StudentMusicGroupStatusEnum.QUIT && oldReg.getMusicGroupStatus() != StudentMusicGroupStatusEnum.APPLY) {
|
|
|
+ throw new BizException("该学员已存在,原手机号为" + oldReg.getParentsPhone());
|
|
|
}
|
|
|
- Organization organization = organizationDao.get(musicGroup.getOrganId());
|
|
|
- String studentGrade = studentService.getStudentGrade(organization.getGradeType(), studentRegistration.getCurrentGradeNum());
|
|
|
- studentRegistration.setCurrentGrade(studentGrade);
|
|
|
- studentRegistration.setActualSubjectId(studentRegistration.getSubjectId());
|
|
|
- studentRegistration.setUserId(userId);
|
|
|
- studentRegistration.setPaymentStatus(PaymentStatusEnum.OPEN);
|
|
|
- studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.APPLY);
|
|
|
- studentRegistration.setTemporaryCourseFee(studentAddDto.getTemporaryCourseFee());
|
|
|
- //学生报名表
|
|
|
- Set<Integer> roleIds = new HashSet<>(1);
|
|
|
- roleIds.add(SysUserRole.SECTION_MANAGER);
|
|
|
- Set<Integer> integers = musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId());
|
|
|
- integers.add(musicGroup.getEducationalTeacherId());
|
|
|
- sysMessageService.batchSeoMessage(integers, MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_ADD_STUDENT, "", musicGroup.getName(), studentRegistration.getName());
|
|
|
- //增加报名学生数
|
|
|
- musicGroupSubjectPlanService.addApplyStudentNum(musicGroupId, studentRegistration.getSubjectId(), 1);
|
|
|
- //汇总金额
|
|
|
-
|
|
|
- MusicGroupStudentFee musicGroupStudentFee = new MusicGroupStudentFee(musicGroupId,
|
|
|
- userId, studentRegistration.getSubjectId(), studentAddDto.getCourseFee(),
|
|
|
- null, studentAddDto.getTemporaryCourseFee(), null);
|
|
|
-
|
|
|
- /*if (musicGroup.getFeeType() != null && musicGroup.getFeeType() != MusicGroupPaymentCalender.FeeType.OFFLINE && musicGroupStudentFee.getTemporaryCourseFee().doubleValue() * 100 == 0) {
|
|
|
- musicGroupStudentFee.setRemainNetworkClassTimes(musicGroupStudentFee.getRemainNetworkClassTimes() + 1);
|
|
|
- }*/
|
|
|
- musicGroupStudentFeeDao.insert(musicGroupStudentFee);
|
|
|
-
|
|
|
- StudentPaymentOrder waitPayOrder = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(userId, studentRegistration.getMusicGroupId(), DealStatusEnum.WAIT_PAY);
|
|
|
-
|
|
|
- if (waitPayOrder != null) {
|
|
|
- waitPayOrder.setStatus(DealStatusEnum.CLOSE);
|
|
|
- studentPaymentOrderService.update(waitPayOrder);
|
|
|
+ if (StringUtils.isNotEmpty(sysUser.getUsername())) {
|
|
|
+ if (!sysUser.getUsername().equals(studentRegistration.getName())) {
|
|
|
+ throw new BizException("操作失败:账户已被注册");
|
|
|
+ }
|
|
|
}
|
|
|
- //生成订单
|
|
|
- StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
|
|
|
- studentPaymentOrder.setUserId(userId);
|
|
|
- studentPaymentOrder.setGroupType(GroupType.MUSIC);
|
|
|
- studentPaymentOrder.setType(OrderTypeEnum.APPLY);
|
|
|
- studentPaymentOrder.setStatus(DealStatusEnum.WAIT_PAY);
|
|
|
- studentPaymentOrder.setMusicGroupId(musicGroupId);
|
|
|
- studentPaymentOrder.setClassGroupId(studentAddDto.getSignClassId());
|
|
|
- studentPaymentOrder.setOrganId(musicGroup.getOrganId());
|
|
|
- studentPaymentOrder.setRoutingOrganId(musicGroup.getOrganId());
|
|
|
-
|
|
|
- //生成订单明细
|
|
|
- List<StudentPaymentOrderDetail> studentPaymentOrderDetails = studentAddDto.getStudentPaymentOrderDetails();
|
|
|
- if (studentPaymentOrderDetails == null) {
|
|
|
- studentPaymentOrderDetails = new ArrayList<>();
|
|
|
+ if (!sysUser.getUserType().contains("STUDENT")) {
|
|
|
+ sysUser.setUserType(sysUser.getUserType() + ",STUDENT");
|
|
|
}
|
|
|
- //汇总金额
|
|
|
-
|
|
|
- BigDecimal reduce = studentPaymentOrderDetails.stream().map(StudentPaymentOrderDetail::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- if (reduce.compareTo(BigDecimal.ZERO) == 0) {
|
|
|
- studentPaymentOrder.setStatus(DealStatusEnum.SUCCESS);
|
|
|
- studentPaymentOrder.setActualAmount(reduce);
|
|
|
- studentPaymentOrder.setPayTime(date);
|
|
|
+ sysUser.setPhone(studentRegistration.getParentsPhone());
|
|
|
+// sysUser.setRealName(studentRegistration.getParentsName());
|
|
|
+ sysUser.setUsername(studentRegistration.getName());
|
|
|
+ sysUser.setGender(studentRegistration.getGender());
|
|
|
+ sysUser.setOrganId(musicGroup.getOrganId());
|
|
|
+ sysUser.setBirthdate(studentRegistration.getBirthdate());
|
|
|
+ teacherDao.updateUser(sysUser);
|
|
|
+ userId = sysUser.getId();
|
|
|
+ Student student = studentDao.get(userId);
|
|
|
+ if (student == null) {
|
|
|
+ studentDao.insert(new Student(userId, studentRegistration.getSubjectId().toString()));
|
|
|
+ } else if (StringUtils.isEmpty(student.getSubjectIdList())) {
|
|
|
+ student.setSubjectIdList(studentRegistration.getSubjectId().toString());
|
|
|
+ student.setUpdateTime(date);
|
|
|
+ studentDao.update(student);
|
|
|
+ } else if (StringUtils.isNotEmpty(student.getSubjectIdList())) {
|
|
|
+ String[] split = student.getSubjectIdList().split(",");
|
|
|
+ List<String> list = new ArrayList<>(Arrays.asList(split));
|
|
|
+ if (!list.contains(studentRegistration.getSubjectId().toString())) {
|
|
|
+ list.add(studentRegistration.getSubjectId().toString());
|
|
|
+ student.setSubjectIdList(StringUtils.join(list, ","));
|
|
|
+ student.setUpdateTime(date);
|
|
|
+ studentDao.update(student);
|
|
|
+ }
|
|
|
}
|
|
|
- studentPaymentOrder.setExpectAmount(reduce);
|
|
|
- studentPaymentOrderService.insert(studentPaymentOrder);
|
|
|
+ imGroupDao.updateNickname(userId, sysUser.getUsername());
|
|
|
+ imGroupDao.updateUserFriendNickname(userId, sysUser.getUsername());
|
|
|
+ }
|
|
|
+ MusicGroupStudentFee studentFeeDaoByUser = musicGroupStudentFeeDao.findByUser(userId, musicGroupId);
|
|
|
+ if (studentFeeDaoByUser != null) {
|
|
|
+ throw new BizException("该学员已存在");
|
|
|
+ }
|
|
|
+ Organization organization = organizationDao.get(musicGroup.getOrganId());
|
|
|
+ String studentGrade = studentService.getStudentGrade(organization.getGradeType(), studentRegistration.getCurrentGradeNum());
|
|
|
+ studentRegistration.setCurrentGrade(studentGrade);
|
|
|
+ studentRegistration.setActualSubjectId(studentRegistration.getSubjectId());
|
|
|
+ studentRegistration.setUserId(userId);
|
|
|
+ studentRegistration.setPaymentStatus(PaymentStatusEnum.OPEN);
|
|
|
+ studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.APPLY);
|
|
|
+ studentRegistration.setTemporaryCourseFee(studentAddDto.getTemporaryCourseFee());
|
|
|
+
|
|
|
+ //增加报名学生数
|
|
|
+ musicGroupSubjectPlanService.addApplyStudentNum(musicGroupId, studentRegistration.getSubjectId(), 1);
|
|
|
+ //汇总金额
|
|
|
+
|
|
|
+ MusicGroupStudentFee musicGroupStudentFee = new MusicGroupStudentFee(musicGroupId,
|
|
|
+ userId, studentRegistration.getSubjectId(), studentAddDto.getCourseFee(),
|
|
|
+ null, studentAddDto.getTemporaryCourseFee(), null);
|
|
|
+
|
|
|
+ /*if (musicGroup.getFeeType() != null && musicGroup.getFeeType() != MusicGroupPaymentCalender.FeeType.OFFLINE && musicGroupStudentFee.getTemporaryCourseFee().doubleValue() * 100 == 0) {
|
|
|
+ musicGroupStudentFee.setRemainNetworkClassTimes(musicGroupStudentFee.getRemainNetworkClassTimes() + 1);
|
|
|
+ }*/
|
|
|
+ musicGroupStudentFeeDao.insert(musicGroupStudentFee);
|
|
|
|
|
|
- //当前学员是否以前存在过当前乐团
|
|
|
- if (phoneAndMusicGroupId != null) {
|
|
|
- studentRegistration.setId(phoneAndMusicGroupId.getId());
|
|
|
- studentRegistrationDao.update(studentRegistration);
|
|
|
- } else {
|
|
|
- studentRegistrationDao.insertBasic(studentRegistration);
|
|
|
- }
|
|
|
- Student student = studentDao.get(userId);
|
|
|
- student.setCurrentGradeNum(studentRegistration.getCurrentGradeNum());
|
|
|
- student.setCurrentClass(studentRegistration.getCurrentClass());
|
|
|
- studentDao.update(student);
|
|
|
- //studentRegistrationDao.updateCurrentClass(studentRegistration);
|
|
|
- imFeignService.update(new ImUserModel(userId.toString(), sysUser.getUsername(), sysUser.getAvatar()));
|
|
|
- return userId;
|
|
|
+ //当前学员是否以前存在过当前乐团
|
|
|
+ if (phoneAndMusicGroupId != null) {
|
|
|
+ studentRegistration.setId(phoneAndMusicGroupId.getId());
|
|
|
+ studentRegistrationDao.update(studentRegistration);
|
|
|
+ } else {
|
|
|
+ studentRegistrationDao.insertBasic(studentRegistration);
|
|
|
}
|
|
|
+ Student student = studentDao.get(userId);
|
|
|
+ student.setCurrentGradeNum(studentRegistration.getCurrentGradeNum());
|
|
|
+ student.setCurrentClass(studentRegistration.getCurrentClass());
|
|
|
+ studentDao.update(student);
|
|
|
+ //studentRegistrationDao.updateCurrentClass(studentRegistration);
|
|
|
+ imFeignService.update(new ImUserModel(userId.toString(), sysUser.getUsername(), sysUser.getAvatar()));
|
|
|
+
|
|
|
+ //学生报名表
|
|
|
+ Set<Integer> roleIds = new HashSet<>(1);
|
|
|
+ roleIds.add(SysUserRole.SECTION_MANAGER);
|
|
|
+ Set<Integer> integers = musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId());
|
|
|
+ integers.add(musicGroup.getEducationalTeacherId());
|
|
|
+ sysMessageService.batchSeoMessage(integers, MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_ADD_STUDENT, "", musicGroup.getName(), studentRegistration.getName());
|
|
|
+
|
|
|
+ return userId;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -904,13 +871,9 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
//修改原有乐团注册信息
|
|
|
studentRegistrationDao.update(studentRegistration);
|
|
|
}
|
|
|
- Boolean orderFlag = true;
|
|
|
//用户是否在主乐团
|
|
|
StudentRegistration registration = studentRegistrationDao.getStudentRegister(newMusicGroupId, studentRegistration.getUserId());
|
|
|
if (registration != null) {
|
|
|
- if (registration.getMusicGroupStatus() == StudentMusicGroupStatusEnum.NORMAL) {
|
|
|
- orderFlag = false;
|
|
|
- }
|
|
|
//修改剩余课程余额
|
|
|
Date date = new Date();
|
|
|
registration.setMusicGroupStatus(StudentMusicGroupStatusEnum.NORMAL);
|
|
@@ -937,28 +900,6 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
musicGroupStudentFeeDao.insert(musicGroupStudentFee);
|
|
|
}
|
|
|
}
|
|
|
- StudentPaymentOrder waitPayOrder = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(registration.getUserId(), studentRegistration.getMusicGroupId(), DealStatusEnum.WAIT_PAY);
|
|
|
-
|
|
|
- if (waitPayOrder != null) {
|
|
|
- waitPayOrder.setStatus(DealStatusEnum.CLOSE);
|
|
|
- studentPaymentOrderService.update(waitPayOrder);
|
|
|
- }
|
|
|
- if (orderFlag) {
|
|
|
- //生成订单
|
|
|
- StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
|
|
|
- studentPaymentOrder.setUserId(registration.getUserId());
|
|
|
- studentPaymentOrder.setGroupType(GroupType.MUSIC);
|
|
|
- studentPaymentOrder.setType(OrderTypeEnum.APPLY);
|
|
|
- studentPaymentOrder.setMusicGroupId(registration.getMusicGroupId());
|
|
|
- studentPaymentOrder.setClassGroupId(registration.getClassGroupId());
|
|
|
- studentPaymentOrder.setOrganId(registration.getOrganId());
|
|
|
- studentPaymentOrder.setRoutingOrganId(registration.getOrganId());
|
|
|
- studentPaymentOrder.setStatus(DealStatusEnum.SUCCESS);
|
|
|
- studentPaymentOrder.setActualAmount(BigDecimal.ZERO);
|
|
|
- studentPaymentOrder.setPayTime(new Date());
|
|
|
- studentPaymentOrder.setExpectAmount(BigDecimal.ZERO);
|
|
|
- studentPaymentOrderService.insert(studentPaymentOrder);
|
|
|
- }
|
|
|
//主班新增余额日志
|
|
|
if (amount.doubleValue() != 0d && masterTotalPrice.doubleValue() > 0d) {
|
|
|
StudentCourseFeeDetail studentCourseFeeDetail = new StudentCourseFeeDetail();
|
|
@@ -1132,10 +1073,6 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
MusicGroupStudentFee musicGroupStudentFee = musicGroupStudentFeeDao.findByUser(studentRegistration.getUserId(), studentRegistration.getMusicGroupId());
|
|
|
//进行中乐团加入学生缴费
|
|
|
if (studentRegistration.getTemporaryCourseFee() != null) {
|
|
|
- //关闭待支付订单
|
|
|
- StudentPaymentOrder waitPayOrder = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(studentRegistration.getUserId(), studentRegistration.getMusicGroupId(), DealStatusEnum.WAIT_PAY);
|
|
|
- waitPayOrder.setStatus(DealStatusEnum.CLOSE);
|
|
|
- studentPaymentOrderService.update(waitPayOrder);
|
|
|
musicGroupStudentFee.setLatestPaidTime(nowDate);
|
|
|
musicGroupStudentFee.setPaymentStatus(PAID_COMPLETED);
|
|
|
musicGroupStudentFee.setTemporaryCourseFee(BigDecimal.ZERO);
|