|
@@ -17,6 +17,7 @@ import java.util.stream.Collectors;
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
|
import com.ym.mec.auth.api.enums.CertificateTypeEnum;
|
|
|
+import com.ym.mec.biz.dal.entity.*;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
@@ -56,29 +57,6 @@ 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.dto.StudentMusicGroupDto;
|
|
|
-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.MusicGroupPaymentCalenderCourseSettings;
|
|
|
-import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderDetail;
|
|
|
-import com.ym.mec.biz.dal.entity.MusicGroupPaymentStudentCourseDetail;
|
|
|
-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.StudentCourseFeeDetail;
|
|
|
-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.CourseStatusEnum;
|
|
@@ -322,7 +300,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
}
|
|
|
|
|
|
StudentRegistration hasReg = getByPhoneAndMusicGroupId(studentRegistration.getMusicGroupId(), studentRegistration.getParentsPhone());
|
|
|
- if (hasReg != null) {
|
|
|
+ if (hasReg != null && hasReg.getMusicGroupStatus() != StudentMusicGroupStatusEnum.QUIT) {
|
|
|
throw new BizException("该乐团您已报名");
|
|
|
}
|
|
|
|
|
@@ -352,18 +330,24 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
studentRegistration.setUpdateTime(date);
|
|
|
studentRegistration.setUserId(sysUser.getId());
|
|
|
studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.APPLY);
|
|
|
- studentRegistrationDao.insert(studentRegistration);
|
|
|
+ if(hasReg != null){
|
|
|
+ studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.NORMAL);
|
|
|
+ studentRegistration.setId(hasReg.getId());
|
|
|
+ studentRegistrationDao.update(studentRegistration);
|
|
|
+ }else {
|
|
|
+ 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());
|
|
|
+ Subject subject = subjectDao.get(studentRegistration.getSubjectId());
|
|
|
// MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId());
|
|
|
|
|
|
Map<Integer, String> map = new HashMap<>(1);
|
|
|
- map.put(studentRegistration.getUserId(), studentRegistration.getParentsPhone());
|
|
|
+ map.put(sysUser.getId(), studentRegistration.getParentsPhone());
|
|
|
sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.SMS_APPLY_MESSAGE, map, null, 0, "", "",
|
|
|
studentRegistration.getParentsName(), subject.getName(), serverPhone);
|
|
|
|
|
@@ -841,16 +825,20 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
|
|
|
@Override
|
|
|
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
|
|
|
- public void insertStudent(String studentIds,String oldMusicGroupId,String newMusicGroupId,BigDecimal masterTotalPrice){
|
|
|
- if(oldMusicGroupId == newMusicGroupId){
|
|
|
- return;
|
|
|
- }
|
|
|
+ public void insertStudent(String studentIds,String oldMusicGroupId,String newMusicGroupId,Map<Integer, List<MusicGroupPaymentCalenderStudentDetail>> collect){
|
|
|
SysUser sysUser1 = sysUserFeignService.queryUserInfo();
|
|
|
//获取旧乐团学员注册信息
|
|
|
List<StudentRegistration> studentRegistrations = studentRegistrationDao.queryByUserIdsAndMusicGroupId(studentIds,oldMusicGroupId);
|
|
|
List<StudentCourseFeeDetail> studentCourseFeeDetails = new ArrayList<>();
|
|
|
BigDecimal amount = BigDecimal.ZERO;
|
|
|
for (StudentRegistration studentRegistration : studentRegistrations) {
|
|
|
+ BigDecimal masterTotalPrice = collect.get(studentRegistration.getUserId()).stream().map(e->e.getCourseCurrentPrice()).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ if(masterTotalPrice.doubleValue() > studentRegistration.getSurplusCourseFee().doubleValue()){
|
|
|
+ throw new BizException("用户信息发生变动,请重新提交");
|
|
|
+ }
|
|
|
+ if(oldMusicGroupId == newMusicGroupId){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
//记录课程余额消费日志
|
|
|
if(studentRegistration.getSurplusCourseFee().doubleValue() > 0d && masterTotalPrice.doubleValue() > 0d){
|
|
|
StudentCourseFeeDetail studentCourseFeeDetail = new StudentCourseFeeDetail();
|
|
@@ -875,6 +863,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
StudentRegistration registration = studentRegistrationDao.getByPhoneAndMusicGroupId(newMusicGroupId, studentRegistration.getParentsPhone());
|
|
|
if (registration != null) {
|
|
|
//修改剩余课程余额
|
|
|
+ registration.setMusicGroupStatus(StudentMusicGroupStatusEnum.NORMAL);
|
|
|
registration.setSurplusCourseFee(registration.getSurplusCourseFee().add(amount));
|
|
|
studentRegistrationDao.update(registration);
|
|
|
}else {
|
|
@@ -1618,6 +1607,11 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public Boolean batchDelRegs(String musicGroupId, List<Integer> userIds) {
|
|
|
List<StudentRegistration> registrations = studentRegistrationDao.findStudentListByUserIdList(musicGroupId, userIds);
|
|
|
+ for (StudentRegistration registration : registrations) {
|
|
|
+ if(registration.getPaymentStatus().equals(PaymentStatusEnum.OPEN)||registration.getPaymentStatus().equals(PaymentStatusEnum.YES)){
|
|
|
+ throw new BizException("开启缴费/已缴费的学员不能删除");
|
|
|
+ }
|
|
|
+ }
|
|
|
if (registrations.size() <= 0) {
|
|
|
throw new BizException("删除的学员不存在,请核查");
|
|
|
}
|