|
@@ -1,9 +1,5 @@
|
|
|
package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
-import static com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus.NON_PAYMENT;
|
|
|
-import static com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED;
|
|
|
-import static com.ym.mec.biz.dal.enums.PaymentStatusEnum.YES;
|
|
|
-
|
|
|
import java.io.IOException;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.ArrayList;
|
|
@@ -20,6 +16,7 @@ import java.util.stream.Collectors;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
|
+import com.ym.mec.auth.api.enums.CertificateTypeEnum;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
@@ -34,7 +31,6 @@ 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.auth.api.enums.CertificateTypeEnum;
|
|
|
import com.ym.mec.biz.dal.dao.CourseScheduleDao;
|
|
|
import com.ym.mec.biz.dal.dao.GoodsDao;
|
|
|
import com.ym.mec.biz.dal.dao.MusicGroupDao;
|
|
@@ -115,6 +111,8 @@ 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;
|
|
|
import com.ym.mec.common.entity.ImResult;
|
|
|
import com.ym.mec.common.entity.ImUserModel;
|
|
|
import com.ym.mec.common.exception.BizException;
|
|
@@ -126,6 +124,10 @@ import com.ym.mec.util.collection.MapUtil;
|
|
|
import com.ym.mec.util.date.DateUtil;
|
|
|
import com.ym.mec.util.http.HttpUtil;
|
|
|
|
|
|
+import static com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus.NON_PAYMENT;
|
|
|
+import static com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED;
|
|
|
+import static com.ym.mec.biz.dal.enums.PaymentStatusEnum.YES;
|
|
|
+
|
|
|
@Service
|
|
|
public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, StudentRegistration> implements StudentRegistrationService {
|
|
|
|
|
@@ -650,133 +652,192 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public Integer insertStudent(StudentAddDto studentAddDto) throws Exception {
|
|
|
- StudentRegistration studentRegistration = studentAddDto.getStudentRegistration();
|
|
|
- if (studentRegistration == null) {
|
|
|
- throw new BizException("参数校验失败");
|
|
|
- }
|
|
|
- /*
|
|
|
- * if(studentAddDto.getSignClassId() == null && studentAddDto.getMixClassId() == null){ throw new BizException("参数校验失败: 单技班或合奏班必填一项"); }
|
|
|
- */
|
|
|
- Date date = new Date();
|
|
|
- String musicGroupId = studentRegistration.getMusicGroupId();
|
|
|
-
|
|
|
- studentRegistration.setCreateTime(date);
|
|
|
- studentRegistration.setUpdateTime(date);
|
|
|
-
|
|
|
- StudentRegistration phoneAndMusicGroupId = studentRegistrationDao.getByPhoneAndMusicGroupId(musicGroupId, studentRegistration.getParentsPhone());
|
|
|
- if (phoneAndMusicGroupId != null && phoneAndMusicGroupId.getMusicGroupStatus() != StudentMusicGroupStatusEnum.QUIT
|
|
|
- && phoneAndMusicGroupId.getMusicGroupStatus() != StudentMusicGroupStatusEnum.APPLY) {
|
|
|
- throw new BizException("该学员已存在");
|
|
|
- } 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"));
|
|
|
- // 添加用户电子签章账户
|
|
|
- // contractService.register(userId, sysUser.getRealName(), sysUser.getIdCardNo(), sysUser.getPhone());
|
|
|
- ImResult register = imFeignService.register(new ImUserModel(userId.toString(), sysUser.getUsername(), null));
|
|
|
- sysUser.setImToken(register.getToken());
|
|
|
- teacherDao.updateUser(sysUser);
|
|
|
- } 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.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);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- MusicGroupStudentFee studentFeeDaoByUser = musicGroupStudentFeeDao.findByUser(userId, musicGroupId);
|
|
|
- if (studentFeeDaoByUser != null) {
|
|
|
- throw new BizException("该学员已存在");
|
|
|
- }
|
|
|
- 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.OPERATION_EXECUTIVE);
|
|
|
-
|
|
|
- sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId()),
|
|
|
- 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);
|
|
|
- // musicGroupStudentFeeDao.insert(new MusicGroupStudentFee(musicGroupId,
|
|
|
- // userId, studentRegistration.getSubjectId(), studentAddDto.getCourseFee(),
|
|
|
- // nextPaymentDate, studentAddDto.getTemporaryCourseFee(), paymentStatus));
|
|
|
- // 当前学员是否以前存在过当前乐团
|
|
|
- if (phoneAndMusicGroupId != null) {
|
|
|
- studentRegistration.setId(phoneAndMusicGroupId.getId());
|
|
|
- studentRegistrationDao.update(studentRegistration);
|
|
|
- } else {
|
|
|
- studentRegistrationDao.insertBasic(studentRegistration);
|
|
|
- }
|
|
|
- studentRegistrationDao.updateCurrentClass(studentRegistration);
|
|
|
- if (musicGroup.getOwnershipType() != null && musicGroup.getOwnershipType() == CooperationOrgan.OwnershipType.OWN) {
|
|
|
- Map<Integer, String> receivers = new HashMap<>(1);
|
|
|
- receivers.put(studentRegistration.getUserId(), studentRegistration.getParentsPhone());
|
|
|
- String studentApplyUrl = sysConfigDao.findConfigValue(SysConfigService.STUDENT_APPLY_URL) + musicGroupId;
|
|
|
- sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.SMS_MUSIC_GROUP_ADD_STUDENT, receivers,
|
|
|
- null, 0, null, "", studentRegistration.getParentsName(), studentRegistration.getName(), musicGroup.getName(),
|
|
|
- HttpUtil.getSortUrl(studentApplyUrl));
|
|
|
- }
|
|
|
- return userId;
|
|
|
- }
|
|
|
- }
|
|
|
+ public Integer insertStudent(StudentAddDto studentAddDto) throws Exception {
|
|
|
+ StudentRegistration studentRegistration = studentAddDto.getStudentRegistration();
|
|
|
+ if (studentRegistration == null) {
|
|
|
+ throw new BizException("参数校验失败");
|
|
|
+ }
|
|
|
+ /*if(studentAddDto.getSignClassId() == null && studentAddDto.getMixClassId() == null){
|
|
|
+ throw new BizException("参数校验失败: 单技班或合奏班必填一项");
|
|
|
+ }*/
|
|
|
+ Date date = new Date();
|
|
|
+ String musicGroupId = studentRegistration.getMusicGroupId();
|
|
|
+
|
|
|
+ studentRegistration.setCreateTime(date);
|
|
|
+ studentRegistration.setUpdateTime(date);
|
|
|
+
|
|
|
+ StudentRegistration phoneAndMusicGroupId = studentRegistrationDao.getByPhoneAndMusicGroupId(musicGroupId, studentRegistration.getParentsPhone());
|
|
|
+ if (phoneAndMusicGroupId != null && phoneAndMusicGroupId.getMusicGroupStatus() != StudentMusicGroupStatusEnum.QUIT && phoneAndMusicGroupId.getMusicGroupStatus() != StudentMusicGroupStatusEnum.APPLY) {
|
|
|
+ throw new BizException("该学员已存在");
|
|
|
+ } 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"));
|
|
|
+ //添加用户电子签章账户
|
|
|
+// contractService.register(userId, sysUser.getRealName(), sysUser.getIdCardNo(), sysUser.getPhone());
|
|
|
+ ImResult register = imFeignService.register(new ImUserModel(userId.toString(), sysUser.getUsername(), null));
|
|
|
+ sysUser.setImToken(register.getToken());
|
|
|
+ teacherDao.updateUser(sysUser);
|
|
|
+ } 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.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);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ MusicGroupStudentFee studentFeeDaoByUser = musicGroupStudentFeeDao.findByUser(userId, musicGroupId);
|
|
|
+ if (studentFeeDaoByUser != null) {
|
|
|
+ throw new BizException("该学员已存在");
|
|
|
+ }
|
|
|
+ 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.OPERATION_EXECUTIVE);
|
|
|
+
|
|
|
+ sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId()), MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_ADD_STUDENT, "", musicGroup.getName(), studentRegistration.getName());
|
|
|
+ //增加报名学生数
|
|
|
+ musicGroupSubjectPlanService.addApplyStudentNum(musicGroupId, studentRegistration.getSubjectId(), 1);
|
|
|
+ //添加班级关联
|
|
|
+ addStudents(studentAddDto, userId);
|
|
|
+ //保存乐团学生费用表
|
|
|
+ if (studentAddDto.getCourseFee() == null) {
|
|
|
+ MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanDao.getMusicOneSubjectClassPlan(musicGroupId, studentRegistration.getActualSubjectId());
|
|
|
+ studentAddDto.setCourseFee(musicOneSubjectClassPlan.getFee());
|
|
|
+ }
|
|
|
+// Date nextPaymentDate = musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId, null, null);
|
|
|
+
|
|
|
+ StudentPaymentOrder waitPayOrder = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(userId, studentRegistration.getMusicGroupId(), DealStatusEnum.WAIT_PAY);
|
|
|
+
|
|
|
+ if (waitPayOrder != null) {
|
|
|
+ waitPayOrder.setStatus(DealStatusEnum.CLOSE);
|
|
|
+ studentPaymentOrderService.update(waitPayOrder);
|
|
|
+ }
|
|
|
+ //生成订单
|
|
|
+ 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<>();
|
|
|
+ } else {
|
|
|
+ studentPaymentOrderDetails.forEach(e -> {
|
|
|
+ if (e.getPrice() == null) {
|
|
|
+ throw new BizException("请补全订单信息");
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ StudentPaymentOrderDetail studentPaymentOrderDetail = new StudentPaymentOrderDetail();
|
|
|
+ studentPaymentOrderDetail.setPrice(studentAddDto.getTemporaryCourseFee() == null ? BigDecimal.ZERO : studentAddDto.getTemporaryCourseFee());
|
|
|
+ studentPaymentOrderDetail.setType(OrderDetailTypeEnum.COURSE);
|
|
|
+ studentPaymentOrderDetails.add(studentPaymentOrderDetail);
|
|
|
+ //汇总金额
|
|
|
+
|
|
|
+ BigDecimal reduce = studentPaymentOrderDetails.stream().map(StudentPaymentOrderDetail::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ MusicGroupStudentFee.PaymentStatus paymentStatus = MusicGroupStudentFee.PaymentStatus.NON_PAYMENT;
|
|
|
+ if (reduce.compareTo(BigDecimal.ZERO) == 0) {
|
|
|
+ paymentStatus = PAID_COMPLETED;
|
|
|
+ studentPaymentOrder.setStatus(DealStatusEnum.SUCCESS);
|
|
|
+ studentRegistration.setPaymentStatus(YES);
|
|
|
+ studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.NORMAL);
|
|
|
+ studentPaymentOrder.setActualAmount(reduce);
|
|
|
+ studentPaymentOrder.setPayTime(date);
|
|
|
+ }
|
|
|
+ MusicGroupStudentFee musicGroupStudentFee = new MusicGroupStudentFee(musicGroupId,
|
|
|
+ userId, studentRegistration.getSubjectId(), studentAddDto.getCourseFee(),
|
|
|
+ null, studentAddDto.getTemporaryCourseFee(), paymentStatus);
|
|
|
+
|
|
|
+ /*if (musicGroup.getFeeType() != null && musicGroup.getFeeType() != MusicGroupPaymentCalender.FeeType.OFFLINE && musicGroupStudentFee.getTemporaryCourseFee().doubleValue() * 100 == 0) {
|
|
|
+ musicGroupStudentFee.setRemainNetworkClassTimes(musicGroupStudentFee.getRemainNetworkClassTimes() + 1);
|
|
|
+ }*/
|
|
|
+ musicGroupStudentFeeDao.insert(musicGroupStudentFee);
|
|
|
+// musicGroupStudentFeeDao.insert(new MusicGroupStudentFee(musicGroupId,
|
|
|
+// userId, studentRegistration.getSubjectId(), studentAddDto.getCourseFee(),
|
|
|
+// nextPaymentDate, studentAddDto.getTemporaryCourseFee(), paymentStatus));
|
|
|
+ musicGroupStudentFeeDao.updateCalender(userId, musicGroupId);
|
|
|
+ studentPaymentOrder.setExpectAmount(reduce);
|
|
|
+ //当前学员是否以前存在过当前乐团
|
|
|
+ if (phoneAndMusicGroupId != null) {
|
|
|
+ studentRegistration.setId(phoneAndMusicGroupId.getId());
|
|
|
+ studentRegistrationDao.update(studentRegistration);
|
|
|
+ } else {
|
|
|
+ studentRegistrationDao.insertBasic(studentRegistration);
|
|
|
+ }
|
|
|
+ studentRegistrationDao.updateCurrentClass(studentRegistration);
|
|
|
+ studentPaymentOrderService.insert(studentPaymentOrder);
|
|
|
+ studentPaymentOrderDetails.forEach(e -> {
|
|
|
+ e.setPaymentOrderId(studentPaymentOrder.getId());
|
|
|
+ });
|
|
|
+ studentPaymentOrderDetailService.batchAdd(studentPaymentOrderDetails);
|
|
|
+ if (musicGroup.getOwnershipType() != null && musicGroup.getOwnershipType() == CooperationOrgan.OwnershipType.OWN) {
|
|
|
+ Map<Integer, String> receivers = new HashMap<>(1);
|
|
|
+ receivers.put(studentRegistration.getUserId(), studentRegistration.getParentsPhone());
|
|
|
+ if (reduce.compareTo(BigDecimal.ZERO) == 0) {
|
|
|
+ sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.SMS_MUSIC_GROUP_ADD_STUDENT_FREE,
|
|
|
+ receivers, null, 0, null, "", studentRegistration.getParentsName(), studentRegistration.getName(), musicGroup.getName());
|
|
|
+ } else {
|
|
|
+ String studentApplyUrl = sysConfigDao.findConfigValue(SysConfigService.STUDENT_APPLY_URL) + musicGroupId;
|
|
|
+ sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.SMS_MUSIC_GROUP_ADD_STUDENT, receivers, null, 0, null, "", studentRegistration.getParentsName(), studentRegistration.getName(), musicGroup.getName(), HttpUtil.getSortUrl(studentApplyUrl));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return userId;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
@Override
|
|
|
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
|
|
@@ -825,7 +886,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
registration = studentRegistration;
|
|
|
|
|
|
//增加报名学生数
|
|
|
- musicGroupSubjectPlanService.addApplyStudentNum(newMusicGroupId, studentRegistration.getActualSubjectId(), 1);
|
|
|
+ musicGroupSubjectPlanService.addApplyStudentNum(newMusicGroupId, studentRegistration.getSubjectId(), 1);
|
|
|
//新增Fee表
|
|
|
MusicGroupStudentFee musicGroupStudentFee = musicGroupStudentFeeDao.findByUser(studentRegistration.getUserId(),newMusicGroupId);
|
|
|
if(musicGroupStudentFee == null){
|
|
@@ -1552,4 +1613,30 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public Boolean batchDelRegs(String musicGroupId, List<Integer> userIds) {
|
|
|
+ List<StudentRegistration> registrations = studentRegistrationDao.findStudentListByUserIdList(musicGroupId, userIds);
|
|
|
+ if (registrations.size() <= 0) {
|
|
|
+ throw new BizException("删除的学员不存在,请核查");
|
|
|
+ }
|
|
|
+ Map<Integer, List<StudentRegistration>> regMap = registrations.stream().collect(Collectors.groupingBy(StudentRegistration::getSubjectId));
|
|
|
+ //更新声部信息
|
|
|
+ for (Map.Entry<Integer, List<StudentRegistration>> regEntry : regMap.entrySet()) {
|
|
|
+ MusicGroupSubjectPlan subjectPlan = musicGroupSubjectPlanDao.findSubjectPlan(musicGroupId, regEntry.getKey());
|
|
|
+ subjectPlan.setApplyStudentNum(subjectPlan.getApplyStudentNum() - regEntry.getValue().size());
|
|
|
+ int updateNum = musicGroupSubjectPlanDao.update(subjectPlan);
|
|
|
+ if (updateNum <= 0) {
|
|
|
+ throw new BizException("声部信息更新失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //删除注册信息
|
|
|
+ List<Long> ids = registrations.stream().map(StudentRegistration::getId).collect(Collectors.toList());
|
|
|
+ int delNum = studentRegistrationDao.batchDelete(ids);
|
|
|
+ if (delNum <= 0) {
|
|
|
+ throw new BizException("学员删除失败");
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
}
|