|
@@ -7,6 +7,7 @@ import com.ym.mec.biz.dal.dao.*;
|
|
import com.ym.mec.biz.dal.dto.*;
|
|
import com.ym.mec.biz.dal.dto.*;
|
|
import com.ym.mec.biz.dal.entity.*;
|
|
import com.ym.mec.biz.dal.entity.*;
|
|
import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
|
|
import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
|
|
|
|
+import com.ym.mec.biz.dal.entity.StudentApplyRefunds.StudentApplyRefundsStatus;
|
|
import com.ym.mec.biz.dal.enums.*;
|
|
import com.ym.mec.biz.dal.enums.*;
|
|
import com.ym.mec.biz.dal.page.*;
|
|
import com.ym.mec.biz.dal.page.*;
|
|
import com.ym.mec.biz.service.*;
|
|
import com.ym.mec.biz.service.*;
|
|
@@ -279,17 +280,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public void updateVipGroup(VipGroupApplyDto vipGroupApplyInfo) {
|
|
public void updateVipGroup(VipGroupApplyDto vipGroupApplyInfo) {
|
|
VipGroupApplyBaseInfoDto vipGroupUpdateInfo = vipGroupApplyInfo.getVipGroupApplyBaseInfo();
|
|
VipGroupApplyBaseInfoDto vipGroupUpdateInfo = vipGroupApplyInfo.getVipGroupApplyBaseInfo();
|
|
- if(Objects.isNull(vipGroupUpdateInfo.getId())){
|
|
|
|
- throw new BizException("请指定vip课");
|
|
|
|
- }
|
|
|
|
- VipGroup oldVipGroupInfo = vipGroupDao.get(vipGroupUpdateInfo.getId());
|
|
|
|
- if(Objects.isNull(oldVipGroupInfo)){
|
|
|
|
- throw new BizException("指定的vip课不存在");
|
|
|
|
- }
|
|
|
|
- Date now=new Date();
|
|
|
|
//更新vip课
|
|
//更新vip课
|
|
- vipGroupUpdateInfo.setUpdateTime(now);
|
|
|
|
- vipGroupDao.update(vipGroupUpdateInfo);
|
|
|
|
|
|
+ updateVipGroupBaseInfo(vipGroupUpdateInfo);
|
|
|
|
|
|
//课程调整
|
|
//课程调整
|
|
List<CourseSchedule> courseSchedules = vipGroupApplyInfo.getCourseSchedules();
|
|
List<CourseSchedule> courseSchedules = vipGroupApplyInfo.getCourseSchedules();
|
|
@@ -498,6 +490,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
}
|
|
}
|
|
VipGroupManageDetailDto vipGroupBaseInfo = vipGroupDao.getVipGroupBaseInfo(vipGroupId);
|
|
VipGroupManageDetailDto vipGroupBaseInfo = vipGroupDao.getVipGroupBaseInfo(vipGroupId);
|
|
vipGroupBaseInfo.setSubjectName(StringUtils.join(subjectDao.findBySubIds(vipGroupBaseInfo.getSubjectIdList()),","));
|
|
vipGroupBaseInfo.setSubjectName(StringUtils.join(subjectDao.findBySubIds(vipGroupBaseInfo.getSubjectIdList()),","));
|
|
|
|
+ ClassGroupTeacherSalary byVipGoupAndTeacher = classGroupTeacherSalaryDao.findByVipGoupAndTeacher(vipGroupId.intValue(), vipGroupBaseInfo.getUserId());
|
|
|
|
+ vipGroupBaseInfo.setOnlineTeacherSalary(byVipGoupAndTeacher.getOnlineClassesSalary());
|
|
|
|
+ vipGroupBaseInfo.setOfflineTeacherSalary(byVipGoupAndTeacher.getSalary());
|
|
return vipGroupBaseInfo;
|
|
return vipGroupBaseInfo;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -834,8 +829,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
Long vipGroupId=Long.parseLong(order.getMusicGroupId());
|
|
Long vipGroupId=Long.parseLong(order.getMusicGroupId());
|
|
Integer userId = order.getUserId();
|
|
Integer userId = order.getUserId();
|
|
boolean isOk=order.getStatus().equals(DealStatusEnum.SUCCESS);
|
|
boolean isOk=order.getStatus().equals(DealStatusEnum.SUCCESS);
|
|
-
|
|
|
|
- VipGroup vipGroup = vipGroupDao.get(vipGroupId);
|
|
|
|
studentPaymentOrderDao.update(order);
|
|
studentPaymentOrderDao.update(order);
|
|
|
|
|
|
//将学生加入到班级,更新班级报名状态及人数信息
|
|
//将学生加入到班级,更新班级报名状态及人数信息
|
|
@@ -846,6 +839,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
|
|
|
updateVipGroupStudentNumAndStatus(vipGroupId,0,true);
|
|
updateVipGroupStudentNumAndStatus(vipGroupId,0,true);
|
|
SysUserCashAccount sysUserCashAccount = sysUserCashAccountService.get(userId);
|
|
SysUserCashAccount sysUserCashAccount = sysUserCashAccountService.get(userId);
|
|
|
|
+
|
|
|
|
+ VipGroup vipGroup = vipGroupDao.get(vipGroupId);
|
|
//插入缴费明细
|
|
//插入缴费明细
|
|
//收入
|
|
//收入
|
|
SysUserCashAccountDetail sysUserIncomeCashAccountDetail = new SysUserCashAccountDetail();
|
|
SysUserCashAccountDetail sysUserIncomeCashAccountDetail = new SysUserCashAccountDetail();
|
|
@@ -881,9 +876,13 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
classGroupStudentMapper.setMusicGroupId(vipGroupId.toString());
|
|
classGroupStudentMapper.setMusicGroupId(vipGroupId.toString());
|
|
classGroupStudentMapperDao.insert(classGroupStudentMapper);
|
|
classGroupStudentMapperDao.insert(classGroupStudentMapper);
|
|
|
|
|
|
- //将学员加入vip班级群组
|
|
|
|
- ImGroupMember[] imGroupMembers = new ImGroupMember[]{new ImGroupMember(userId.toString())};
|
|
|
|
- imFeignService.groupJoin(new ImGroupModel(vipGroupClassGroupMapper.getClassGroupId().toString(), imGroupMembers, null));
|
|
|
|
|
|
+ try {
|
|
|
|
+ //将学员加入vip班级群组
|
|
|
|
+ ImGroupMember[] imGroupMembers = new ImGroupMember[]{new ImGroupMember(userId.toString())};
|
|
|
|
+ imFeignService.groupJoin(new ImGroupModel(vipGroupClassGroupMapper.getClassGroupId().toString(), imGroupMembers, null));
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
|
|
//更新所属分部列表
|
|
//更新所属分部列表
|
|
List<Integer> organIds = classGroupDao.findStudentOrganIdsByClassGroup(vipGroupClassGroupMapper.getClassGroupId().longValue());
|
|
List<Integer> organIds = classGroupDao.findStudentOrganIdsByClassGroup(vipGroupClassGroupMapper.getClassGroupId().longValue());
|
|
@@ -893,7 +892,11 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
vipGroup.setOrganIdList(organIdsString);
|
|
vipGroup.setOrganIdList(organIdsString);
|
|
vipGroupDao.update(vipGroup);
|
|
vipGroupDao.update(vipGroup);
|
|
|
|
|
|
- contractService.transferVipGroupCoursesContract(userId,vipGroupId);
|
|
|
|
|
|
+ try {
|
|
|
|
+ contractService.transferVipGroupCoursesContract(userId,vipGroupId);
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@@ -914,7 +917,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
new BigDecimal(Objects.isNull(surplusClassTimes.get(TeachModeEnum.OFFLINE.getCode()))?"0":surplusClassTimes.get(TeachModeEnum.OFFLINE.getCode()).toString()),
|
|
new BigDecimal(Objects.isNull(surplusClassTimes.get(TeachModeEnum.OFFLINE.getCode()))?"0":surplusClassTimes.get(TeachModeEnum.OFFLINE.getCode()).toString()),
|
|
true,
|
|
true,
|
|
false).get("totalPrice"));
|
|
false).get("totalPrice"));
|
|
- studentApplyRefunds.setStatus(AuditStatusEnum.ING);
|
|
|
|
|
|
+ studentApplyRefunds.setStatus(StudentApplyRefundsStatus.ING);
|
|
String orderNo=StringUtils.join(new String[]{studentId.toString(),String.valueOf(System.currentTimeMillis())});
|
|
String orderNo=StringUtils.join(new String[]{studentId.toString(),String.valueOf(System.currentTimeMillis())});
|
|
studentApplyRefunds.setOrderNo(orderNo);
|
|
studentApplyRefunds.setOrderNo(orderNo);
|
|
studentApplyRefunds.setOrigPaymentOrderId(studentPaymentOrder.getId());
|
|
studentApplyRefunds.setOrigPaymentOrderId(studentPaymentOrder.getId());
|
|
@@ -924,7 +927,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Override
|
|
@Override
|
|
- public void applyRefundAudit(Long id, AuditStatusEnum status, String remark,BigDecimal amount) {
|
|
|
|
|
|
+ public void applyRefundAudit(Long id, StudentApplyRefundsStatus status, String remark,BigDecimal amount) {
|
|
|
|
|
|
StudentApplyRefunds studentApplyRefunds = studentApplyRefundsDao.get(id);
|
|
StudentApplyRefunds studentApplyRefunds = studentApplyRefundsDao.get(id);
|
|
if (studentApplyRefunds == null) {
|
|
if (studentApplyRefunds == null) {
|
|
@@ -935,17 +938,24 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
if (null == studentPaymentOrder) {
|
|
if (null == studentPaymentOrder) {
|
|
throw new BizException("未找到原订单信息!");
|
|
throw new BizException("未找到原订单信息!");
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ if(status ==StudentApplyRefundsStatus.ING){
|
|
|
|
+ throw new BizException("状态不正确");
|
|
|
|
+ }
|
|
|
|
|
|
studentApplyRefunds.setStatus(status);
|
|
studentApplyRefunds.setStatus(status);
|
|
- if (studentApplyRefunds.getStatus() == AuditStatusEnum.PASS) {
|
|
|
|
|
|
+ if (studentApplyRefunds.getStatus() == StudentApplyRefundsStatus.DONE) {
|
|
studentApplyRefunds.setActualAmount(amount);
|
|
studentApplyRefunds.setActualAmount(amount);
|
|
- } else {
|
|
|
|
|
|
+ } else if (studentApplyRefunds.getStatus() == StudentApplyRefundsStatus.WAIT_PAYMENT){
|
|
|
|
+ studentApplyRefunds.setExpectAmount(amount);
|
|
|
|
+ }else{
|
|
studentApplyRefunds.setActualAmount(new BigDecimal(0));
|
|
studentApplyRefunds.setActualAmount(new BigDecimal(0));
|
|
}
|
|
}
|
|
studentApplyRefunds.setRemark(remark);
|
|
studentApplyRefunds.setRemark(remark);
|
|
|
|
+ studentApplyRefunds.setUpdateTime(new Date());
|
|
studentApplyRefundsDao.update(studentApplyRefunds);
|
|
studentApplyRefundsDao.update(studentApplyRefunds);
|
|
switch (studentApplyRefunds.getStatus()) {
|
|
switch (studentApplyRefunds.getStatus()) {
|
|
- case PASS:
|
|
|
|
|
|
+ case DONE:
|
|
sysUserCashAccountService.updateBalance(studentApplyRefunds.getUserId(), studentApplyRefunds.getActualAmount());
|
|
sysUserCashAccountService.updateBalance(studentApplyRefunds.getUserId(), studentApplyRefunds.getActualAmount());
|
|
SysUserCashAccount sysUserCashAccount = sysUserCashAccountService.get(studentApplyRefunds.getUserId().intValue());
|
|
SysUserCashAccount sysUserCashAccount = sysUserCashAccountService.get(studentApplyRefunds.getUserId().intValue());
|
|
SysUserCashAccountDetail sysUserCashAccountDetail = new SysUserCashAccountDetail();
|
|
SysUserCashAccountDetail sysUserCashAccountDetail = new SysUserCashAccountDetail();
|
|
@@ -957,8 +967,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
sysUserCashAccountDetail.setAttribute(studentApplyRefunds.getId().toString());
|
|
sysUserCashAccountDetail.setAttribute(studentApplyRefunds.getId().toString());
|
|
sysUserCashAccountDetailDao.insert(sysUserCashAccountDetail);
|
|
sysUserCashAccountDetailDao.insert(sysUserCashAccountDetail);
|
|
|
|
|
|
- ClassGroupStudentMapper classStudentMapperByUserIdAndClassGroupId = classGroupStudentMapperDao.findClassStudentMapperByUserIdAndClassGroupId(studentPaymentOrder.getUserId(),
|
|
|
|
- studentPaymentOrder.getClassGroupId());
|
|
|
|
|
|
+ ClassGroupStudentMapper classStudentMapperByUserIdAndClassGroupId = classGroupStudentMapperDao.query(studentPaymentOrder.getClassGroupId(),
|
|
|
|
+ studentPaymentOrder.getUserId());
|
|
|
|
|
|
classStudentMapperByUserIdAndClassGroupId.setStatus(ClassGroupStudentStatusEnum.LEAVE);
|
|
classStudentMapperByUserIdAndClassGroupId.setStatus(ClassGroupStudentStatusEnum.LEAVE);
|
|
classGroupStudentMapperDao.update(classStudentMapperByUserIdAndClassGroupId);
|
|
classGroupStudentMapperDao.update(classStudentMapperByUserIdAndClassGroupId);
|
|
@@ -970,6 +980,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
case REJECT:
|
|
case REJECT:
|
|
|
|
|
|
break;
|
|
break;
|
|
|
|
+ case WAIT_PAYMENT:
|
|
|
|
+
|
|
|
|
+ break;
|
|
default:
|
|
default:
|
|
throw new BizException("审核状态错误!");
|
|
throw new BizException("审核状态错误!");
|
|
}
|
|
}
|
|
@@ -1075,15 +1088,21 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
if(vipGroup.getStatus()==VipGroupStatusEnum.FINISH||vipGroup.getStatus()==VipGroupStatusEnum.CANCEL){
|
|
if(vipGroup.getStatus()==VipGroupStatusEnum.FINISH||vipGroup.getStatus()==VipGroupStatusEnum.CANCEL){
|
|
throw new BizException("该课程已结束或者已被停止,无法进行此操作");
|
|
throw new BizException("该课程已结束或者已被停止,无法进行此操作");
|
|
}
|
|
}
|
|
|
|
+ List<CourseSchedule> vipGroupCourseSchedules = courseScheduleDao.findVipGroupCourseSchedules(vipGroupId);
|
|
|
|
+ List<Long> courseScheduleIds = vipGroupCourseSchedules.stream().map(CourseSchedule::getId).collect(Collectors.toList());
|
|
if(vipGroup.getStatus()==VipGroupStatusEnum.NOT_START){
|
|
if(vipGroup.getStatus()==VipGroupStatusEnum.NOT_START){
|
|
vipGroup.setStatus(VipGroupStatusEnum.CANCEL);
|
|
vipGroup.setStatus(VipGroupStatusEnum.CANCEL);
|
|
vipGroupDao.update(vipGroup);
|
|
vipGroupDao.update(vipGroup);
|
|
|
|
+ courseScheduleDao.batchDeleteCourseSchedules(courseScheduleIds);
|
|
|
|
+ courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
List<Map<Integer, BigDecimal>> maps = vipGroupDao.countSurplusCourseFee(vipGroupId);
|
|
List<Map<Integer, BigDecimal>> maps = vipGroupDao.countSurplusCourseFee(vipGroupId);
|
|
if(CollectionUtils.isEmpty(maps)||(maps.size()==1&&Objects.isNull(maps.get(0)))){
|
|
if(CollectionUtils.isEmpty(maps)||(maps.size()==1&&Objects.isNull(maps.get(0)))){
|
|
vipGroup.setStatus(VipGroupStatusEnum.CANCEL);
|
|
vipGroup.setStatus(VipGroupStatusEnum.CANCEL);
|
|
vipGroupDao.update(vipGroup);
|
|
vipGroupDao.update(vipGroup);
|
|
|
|
+ courseScheduleDao.batchDeleteCourseSchedules(courseScheduleIds);
|
|
|
|
+ courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
Map<Integer, BigDecimal> studentSurplusClassFees = MapUtil.convertMybatisMap(maps);
|
|
Map<Integer, BigDecimal> studentSurplusClassFees = MapUtil.convertMybatisMap(maps);
|
|
@@ -1108,8 +1127,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
vipGroup.setStopReason(stopReason);
|
|
vipGroup.setStopReason(stopReason);
|
|
vipGroupDao.update(vipGroup);
|
|
vipGroupDao.update(vipGroup);
|
|
|
|
|
|
- List<CourseSchedule> vipGroupCourseSchedules = courseScheduleDao.findVipGroupCourseSchedules(vipGroupId);
|
|
|
|
- List<Long> courseScheduleIds = vipGroupCourseSchedules.stream().map(CourseSchedule::getId).collect(Collectors.toList());
|
|
|
|
courseScheduleDao.batchDeleteCourseSchedules(courseScheduleIds);
|
|
courseScheduleDao.batchDeleteCourseSchedules(courseScheduleIds);
|
|
courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
|
|
courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
|
|
courseScheduleStudentPaymentDao.deleteByCourseSchedule(courseScheduleIds);
|
|
courseScheduleStudentPaymentDao.deleteByCourseSchedule(courseScheduleIds);
|
|
@@ -1151,4 +1168,49 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
public List<School> querySchoolByUserId(Integer userId) {
|
|
public List<School> querySchoolByUserId(Integer userId) {
|
|
return vipGroupDao.querySchoolByUserId(userId);
|
|
return vipGroupDao.querySchoolByUserId(userId);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void updateVipGroupBaseInfo(VipGroupApplyBaseInfoDto vipGroupApplyBaseInfo) {
|
|
|
|
+ if(Objects.isNull(vipGroupApplyBaseInfo.getId())){
|
|
|
|
+ throw new BizException("请指定vip课");
|
|
|
|
+ }
|
|
|
|
+ VipGroup oldVipGroupInfo = vipGroupDao.get(vipGroupApplyBaseInfo.getId());
|
|
|
|
+ if(Objects.isNull(oldVipGroupInfo)){
|
|
|
|
+ throw new BizException("指定的vip课不存在");
|
|
|
|
+ }
|
|
|
|
+ Date now=new Date();
|
|
|
|
+ //更新vip课
|
|
|
|
+ vipGroupApplyBaseInfo.setUpdateTime(now);
|
|
|
|
+ vipGroupDao.update(vipGroupApplyBaseInfo);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void appendVipGroupCourseSchedules(VipGroupApplyDto vipGroupApplyDto) {
|
|
|
|
+ if(Objects.isNull(vipGroupApplyDto.getVipGroupApplyBaseInfo().getId())){
|
|
|
|
+ throw new BizException("请指定vip课");
|
|
|
|
+ }
|
|
|
|
+ VipGroup vipGroup = vipGroupDao.get(vipGroupApplyDto.getVipGroupApplyBaseInfo().getId());
|
|
|
|
+ if(Objects.isNull(vipGroup)){
|
|
|
|
+ throw new BizException("指定的vip课不存在");
|
|
|
|
+ }
|
|
|
|
+ VipGroupClassGroupMapper vipGroupClassGroupMapper = vipGroupClassGroupMapperDao.findByVipGroupId(vipGroup.getId());
|
|
|
|
+ //课程信息调整
|
|
|
|
+ vipGroupApplyDto.getCourseSchedules().forEach(courseSchedule -> {
|
|
|
|
+ courseSchedule.setSchoolId(vipGroup.getTeacherSchoolId());
|
|
|
|
+ courseSchedule.setTeacherId(vipGroup.getUserId());
|
|
|
|
+ courseSchedule.setActualTeacherId(vipGroup.getUserId());
|
|
|
|
+ courseSchedule.setStatus(CourseStatusEnum.NOT_START);
|
|
|
|
+ courseSchedule.setType(CourseSchedule.CourseScheduleType.VIP);
|
|
|
|
+ courseSchedule.setClassGroupId(vipGroupClassGroupMapper.getClassGroupId());
|
|
|
|
+ });
|
|
|
|
+ courseScheduleService.batchAddCourseSchedule(vipGroupApplyDto.getCourseSchedules());
|
|
|
|
+
|
|
|
|
+ TeacherDefaultVipGroupSalary byTeacherAndCategory = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(vipGroup.getUserId(), vipGroup.getVipGroupCategoryId());
|
|
|
|
+
|
|
|
|
+ //创建老师单节课课酬信息
|
|
|
|
+ courseScheduleTeacherSalaryService.createCourseScheduleTeacherVipSalary(vipGroup,
|
|
|
|
+ vipGroupApplyDto.getCourseSchedules(),
|
|
|
|
+ byTeacherAndCategory.getOnlineClassesSalary(),
|
|
|
|
+ byTeacherAndCategory.getOfflineClassesSalary());
|
|
|
|
+ }
|
|
}
|
|
}
|