|
@@ -20,7 +20,10 @@ import java.util.stream.Collectors;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
|
+import com.ym.mec.biz.dal.dao.*;
|
|
|
+import com.ym.mec.biz.dal.entity.*;
|
|
|
import com.ym.mec.biz.event.source.GroupEventSource;
|
|
|
+import com.ym.mec.biz.service.*;
|
|
|
import org.apache.commons.lang3.ArrayUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
@@ -37,24 +40,6 @@ 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;
|
|
|
-import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderCourseSettingsDao;
|
|
|
-import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDao;
|
|
|
-import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDetailDao;
|
|
|
-import com.ym.mec.biz.dal.dao.MusicGroupPaymentStudentCourseDetailDao;
|
|
|
-import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
|
|
|
-import com.ym.mec.biz.dal.dao.MusicGroupSubjectPlanDao;
|
|
|
-import com.ym.mec.biz.dal.dao.StudentCourseFeeDetailDao;
|
|
|
-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;
|
|
@@ -62,30 +47,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.MusicGroupPaymentCalenderStudentDetail;
|
|
|
-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;
|
|
@@ -100,23 +61,6 @@ 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.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.ImGroupMemberService;
|
|
|
-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.ImResult;
|
|
|
import com.ym.mec.common.entity.ImUserModel;
|
|
@@ -207,6 +151,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
|
|
|
@Autowired
|
|
|
private GroupEventSource groupEventSource;
|
|
|
+ @Autowired
|
|
|
+ private StudentInstrumentService studentInstrumentService;
|
|
|
|
|
|
@Override
|
|
|
public BaseDAO<Long, StudentRegistration> getDAO() {
|
|
@@ -356,11 +302,11 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
studentRegistration.setUpdateTime(date);
|
|
|
studentRegistration.setUserId(sysUser.getId());
|
|
|
studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.APPLY);
|
|
|
- if(hasReg != null){
|
|
|
+ if (hasReg != null) {
|
|
|
studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.NORMAL);
|
|
|
studentRegistration.setId(hasReg.getId());
|
|
|
studentRegistrationDao.update(studentRegistration);
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
studentRegistrationDao.insert(studentRegistration);
|
|
|
}
|
|
|
|
|
@@ -609,7 +555,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
return null;
|
|
|
}
|
|
|
SysUserCashAccount account = sysUserCashAccountDao.getLocked(userId);
|
|
|
- registration.setBalance(account==null?BigDecimal.ZERO : account.getBalance());
|
|
|
+ registration.setBalance(account == null ? BigDecimal.ZERO : account.getBalance());
|
|
|
registration.setTransferStudent(0);
|
|
|
return registration;
|
|
|
}
|
|
@@ -776,30 +722,30 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
|
|
|
@Override
|
|
|
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
|
|
|
- public void insertStudent(String studentIds,String oldMusicGroupId,String newMusicGroupId,Map<Integer, List<MusicGroupPaymentCalenderStudentDetail>> collect){
|
|
|
+ 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<StudentRegistration> studentRegistrations = studentRegistrationDao.queryByUserIdsAndMusicGroupId(studentIds, oldMusicGroupId);
|
|
|
List<StudentCourseFeeDetail> studentCourseFeeDetails = new ArrayList<>();
|
|
|
BigDecimal amount = BigDecimal.ZERO;
|
|
|
for (StudentRegistration studentRegistration : studentRegistrations) {
|
|
|
List<MusicGroupPaymentCalenderStudentDetail> details = collect.get(studentRegistration.getUserId());
|
|
|
- BigDecimal masterTotalPrice = details.stream().map(e->e.getCutAmount()).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- if(masterTotalPrice.doubleValue() > studentRegistration.getSurplusCourseFee().doubleValue()){
|
|
|
+ BigDecimal masterTotalPrice = details.stream().map(e -> e.getCutAmount()).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ if (masterTotalPrice.doubleValue() > studentRegistration.getSurplusCourseFee().doubleValue()) {
|
|
|
throw new BizException("用户信息发生变动,请重新提交");
|
|
|
}
|
|
|
- if(oldMusicGroupId == newMusicGroupId){
|
|
|
+ if (oldMusicGroupId == newMusicGroupId) {
|
|
|
continue;
|
|
|
}
|
|
|
- courseScheduleStudentPaymentService.updateCourseActualPrice(Arrays.asList(oldMusicGroupId),null, GroupType.MUSIC);
|
|
|
+ courseScheduleStudentPaymentService.updateCourseActualPrice(Arrays.asList(oldMusicGroupId), null, GroupType.MUSIC);
|
|
|
//记录课程余额消费日志
|
|
|
- if(studentRegistration.getSurplusCourseFee().doubleValue() > 0d && masterTotalPrice.doubleValue() > 0d){
|
|
|
+ if (studentRegistration.getSurplusCourseFee().doubleValue() > 0d && masterTotalPrice.doubleValue() > 0d) {
|
|
|
StudentCourseFeeDetail studentCourseFeeDetail = new StudentCourseFeeDetail();
|
|
|
- if(studentRegistration.getSurplusCourseFee().doubleValue() > masterTotalPrice.doubleValue()){
|
|
|
+ if (studentRegistration.getSurplusCourseFee().doubleValue() > masterTotalPrice.doubleValue()) {
|
|
|
amount = masterTotalPrice;
|
|
|
studentCourseFeeDetail.setAmount(masterTotalPrice.negate());
|
|
|
studentCourseFeeDetail.setSurplusCourseFee(studentRegistration.getSurplusCourseFee().subtract(masterTotalPrice));
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
amount = studentRegistration.getSurplusCourseFee();
|
|
|
studentCourseFeeDetail.setAmount(studentRegistration.getSurplusCourseFee().negate());
|
|
|
studentCourseFeeDetail.setSurplusCourseFee(BigDecimal.ZERO);
|
|
@@ -816,7 +762,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
//用户是否在主乐团
|
|
|
StudentRegistration registration = studentRegistrationDao.getByPhoneAndMusicGroupId(newMusicGroupId, studentRegistration.getParentsPhone());
|
|
|
if (registration != null) {
|
|
|
- if(registration.getMusicGroupStatus() == StudentMusicGroupStatusEnum.NORMAL){
|
|
|
+ if (registration.getMusicGroupStatus() == StudentMusicGroupStatusEnum.NORMAL) {
|
|
|
orderFlag = false;
|
|
|
}
|
|
|
//修改剩余课程余额
|
|
@@ -826,7 +772,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
registration.setUpdateTime(date);
|
|
|
registration.setSurplusCourseFee(registration.getSurplusCourseFee().add(amount));
|
|
|
studentRegistrationDao.update(registration);
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
//生成学员乐团注册表
|
|
|
studentRegistration.setOrganId(musicGroupDao.get(newMusicGroupId).getOrganId());
|
|
|
studentRegistration.setSurplusCourseFee(amount);
|
|
@@ -837,11 +783,11 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
//增加报名学生数
|
|
|
musicGroupSubjectPlanService.addApplyStudentNum(newMusicGroupId, studentRegistration.getActualSubjectId(), 1);
|
|
|
//新增Fee表
|
|
|
- MusicGroupStudentFee musicGroupStudentFee = musicGroupStudentFeeDao.findByUser(studentRegistration.getUserId(),newMusicGroupId);
|
|
|
- if(musicGroupStudentFee == null){
|
|
|
+ MusicGroupStudentFee musicGroupStudentFee = musicGroupStudentFeeDao.findByUser(studentRegistration.getUserId(), newMusicGroupId);
|
|
|
+ if (musicGroupStudentFee == null) {
|
|
|
musicGroupStudentFee = new MusicGroupStudentFee(newMusicGroupId,
|
|
|
- studentRegistration.getUserId(), studentRegistration.getSubjectId(),BigDecimal.ZERO,
|
|
|
- null, studentRegistration.getTemporaryCourseFee(), studentRegistration.getPaymentStatus()==YES?PAID_COMPLETED:NON_PAYMENT);
|
|
|
+ studentRegistration.getUserId(), studentRegistration.getSubjectId(), BigDecimal.ZERO,
|
|
|
+ null, studentRegistration.getTemporaryCourseFee(), studentRegistration.getPaymentStatus() == YES ? PAID_COMPLETED : NON_PAYMENT);
|
|
|
musicGroupStudentFeeDao.insert(musicGroupStudentFee);
|
|
|
}
|
|
|
}
|
|
@@ -851,7 +797,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
waitPayOrder.setStatus(DealStatusEnum.CLOSE);
|
|
|
studentPaymentOrderService.update(waitPayOrder);
|
|
|
}
|
|
|
- if(orderFlag){
|
|
|
+ if (orderFlag) {
|
|
|
//生成订单
|
|
|
StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
|
|
|
studentPaymentOrder.setUserId(registration.getUserId());
|
|
@@ -868,7 +814,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
studentPaymentOrderService.insert(studentPaymentOrder);
|
|
|
}
|
|
|
//主班新增余额日志
|
|
|
- if(amount.doubleValue() != 0d && masterTotalPrice.doubleValue() > 0d){
|
|
|
+ if (amount.doubleValue() != 0d && masterTotalPrice.doubleValue() > 0d) {
|
|
|
StudentCourseFeeDetail studentCourseFeeDetail = new StudentCourseFeeDetail();
|
|
|
studentCourseFeeDetail.setAmount(amount);
|
|
|
studentCourseFeeDetail.setSurplusCourseFee(registration.getSurplusCourseFee());
|
|
@@ -878,7 +824,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
studentCourseFeeDetails.add(studentCourseFeeDetail);
|
|
|
}
|
|
|
}
|
|
|
- if(studentCourseFeeDetails.size() > 0){
|
|
|
+ if (studentCourseFeeDetails.size() > 0) {
|
|
|
studentCourseFeeDetailDao.batchInsert(studentCourseFeeDetails);
|
|
|
}
|
|
|
}
|
|
@@ -1095,8 +1041,13 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
sellOrderService.addOrderDetail2SellOrder(orderDetails, studentPaymentOrder, musicGroup);
|
|
|
}
|
|
|
|
|
|
+ //课程处理
|
|
|
addCalenderDetail(studentPaymentOrder, studentRegistration);
|
|
|
|
|
|
+ //学生乐器与月保处理
|
|
|
+ studentInstrumentService.addOrderDetail2Instrument(studentPaymentOrder);
|
|
|
+
|
|
|
+ //合并学员处理
|
|
|
if (studentRegistration.getIsMerge().equals(1) && studentPaymentOrder.getExpectAmount().compareTo(BigDecimal.ZERO) <= 0) {
|
|
|
return studentPaymentOrder;
|
|
|
}
|
|
@@ -1370,7 +1321,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public StudentRegistration updateStudent(StudentRegistration studentRegistration) {
|
|
|
- if(StringUtils.isBlank(studentRegistration.getCertificateType())){
|
|
|
+ if (StringUtils.isBlank(studentRegistration.getCertificateType())) {
|
|
|
studentRegistration.setCertificateType(CertificateTypeEnum.IDENTITY.getCode());
|
|
|
}
|
|
|
StudentRegistration student = get(studentRegistration.getId());
|
|
@@ -1382,9 +1333,9 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
student.setIdCardNo(studentRegistration.getIdCardNo());
|
|
|
student.setGender(studentRegistration.getGender());
|
|
|
update(studentRegistration);
|
|
|
- studentRegistrationDao.updateUser(student.getUserId(),student.getName(), student.getParentsName(), student.getIdCardNo(), student.getGender(),studentRegistration.getCertificateType());
|
|
|
+ studentRegistrationDao.updateUser(student.getUserId(), student.getName(), student.getParentsName(), student.getIdCardNo(), student.getGender(), studentRegistration.getCertificateType());
|
|
|
// 添加用户电子签章账户
|
|
|
- if(CertificateTypeEnum.IDENTITY.getCode().equals(studentRegistration.getCertificateType())){
|
|
|
+ if (CertificateTypeEnum.IDENTITY.getCode().equals(studentRegistration.getCertificateType())) {
|
|
|
contractService.register(student.getUserId(), student.getParentsName(), student.getIdCardNo(), student.getParentsPhone());
|
|
|
}
|
|
|
return student;
|
|
@@ -1572,10 +1523,10 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
return amount;
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public List<StudentMusicGroupDto> queryStudentMusicGroupInfo(Integer userId) {
|
|
|
- return studentRegistrationDao.queryStudentMusicGroupInfo(userId);
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public List<StudentMusicGroupDto> queryStudentMusicGroupInfo(Integer userId) {
|
|
|
+ return studentRegistrationDao.queryStudentMusicGroupInfo(userId);
|
|
|
+ }
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@@ -1596,8 +1547,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
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(registration.getName()+"("+registration.getPaymentStatus().getDesc()+"),不能删除");
|
|
|
+ if (registration.getPaymentStatus().equals(PaymentStatusEnum.OPEN) || registration.getPaymentStatus().equals(PaymentStatusEnum.YES)) {
|
|
|
+ throw new BizException(registration.getName() + "(" + registration.getPaymentStatus().getDesc() + "),不能删除");
|
|
|
}
|
|
|
}
|
|
|
if (registrations.size() <= 0) {
|
|
@@ -1625,6 +1576,6 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
@Override
|
|
|
public List<StudentRegistration> getMusicGroupStuReBack(String musicGroupId) {
|
|
|
courseScheduleStudentPaymentService.updateCourseActualPrice(Arrays.asList(musicGroupId), null, GroupType.MUSIC);
|
|
|
- return this.findMusicGroupStudent(musicGroupId,null);
|
|
|
+ return this.findMusicGroupStudent(musicGroupId, null);
|
|
|
}
|
|
|
}
|