|
|
@@ -3699,11 +3699,9 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
PracticeGroup practiceGroup = practiceGroupDao.get(Long.valueOf(order.getMusicGroupId()));
|
|
|
ClassGroup classGroup = classGroupDao.findByMusicGroupAndType(order.getMusicGroupId(), GroupType.PRACTICE.getCode());
|
|
|
if (order.getStatus().equals(DealStatusEnum.SUCCESS)) {
|
|
|
- Integer activityUserMapperId = studentPaymentOrderService.activityGive(practiceGroup.getVipGroupActivityId(),
|
|
|
- order.getUserId(),
|
|
|
- order.getId(),
|
|
|
+ Integer activityUserMapperId = studentPaymentOrderService.activityGive(practiceGroup.getVipGroupActivityId(),order,
|
|
|
null,
|
|
|
- practiceGroup.getId(),order.getActivityBuyNum(),order.getOrganId(),practiceGroup.getUserId());
|
|
|
+ practiceGroup.getId(),practiceGroup.getUserId());
|
|
|
practiceGroup.setActivityUserMapperId(activityUserMapperId);
|
|
|
if(classGroup.getDelFlag() == 1){
|
|
|
updatePracticeGroupStudentNumAndStatus(practiceGroup, classGroup,order);
|
|
|
@@ -3871,11 +3869,18 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
PracticeGroupSellPrice practiceGroupSellPrice = practiceGroupSellPriceDao.get(practiceGroup.getOrganId());
|
|
|
BigDecimal singleClassMinutesPrice = practiceGroupSellPrice.getSingleClassMinutesPrice();
|
|
|
//实际支付金额,去除优惠券
|
|
|
- BigDecimal actualPrice = order.getExpectAmount().subtract(order.getCouponRemitFee());
|
|
|
+ BigDecimal actualPrice = order.getExpectAmount();
|
|
|
BigDecimal divide = actualPrice.divide(new BigDecimal(courseSchedules.size()), ROUND_DOWN);
|
|
|
BigDecimal firstAmount = actualPrice.subtract(divide.multiply(new BigDecimal(courseSchedules.size()))).add(divide);
|
|
|
|
|
|
- BigDecimal teacherDefaultSalary = BigDecimal.ZERO;
|
|
|
+ SysConfig practiceCourseMinutesConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_COURSE_MINUTES);
|
|
|
+ Integer practiceCourseMinutes = practiceCourseMinutesConfig.getParanValue(Integer.class);
|
|
|
+
|
|
|
+ TeacherDefaultPracticeGroupSalary teacherDefaultPracticeGroupSalary = teacherDefaultPracticeGroupSalaryDao.findByTeacherAndCourseMinutes(practiceGroup.getUserId(),practiceCourseMinutes);
|
|
|
+ if(Objects.isNull(teacherDefaultPracticeGroupSalary)){
|
|
|
+ throw new BizException("请设置老师课酬");
|
|
|
+ }
|
|
|
+ BigDecimal teacherDefaultSalary = teacherDefaultPracticeGroupSalary.getMainTeacherSalary();
|
|
|
if(practiceGroup.getVipGroupActivityId() != null){
|
|
|
VipGroupActivity vipGroupActivity = vipGroupActivityDao.get(practiceGroup.getVipGroupActivityId());
|
|
|
VipGroupSalarySettlementDto vipGroupSalarySettlementDto = JSON.parseObject(vipGroupActivity.getSalarySettlementJson(), VipGroupSalarySettlementDto.class);
|
|
|
@@ -3883,24 +3888,9 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
throw new BizException("课酬结算方案错误");
|
|
|
}
|
|
|
VipGroupSalarySettlementTypeDto salarySettlement = vipGroupSalarySettlementDto.getPracticeSalarySettlement();
|
|
|
- switch (salarySettlement.getSalarySettlementType()){
|
|
|
- case TEACHER_DEFAULT:
|
|
|
- break;
|
|
|
- case FIXED_SALARY:
|
|
|
- teacherDefaultSalary = salarySettlement.getSettlementValue().setScale(0, BigDecimal.ROUND_HALF_UP);
|
|
|
- break;
|
|
|
- default:
|
|
|
- throw new BizException("错误的课酬结算标准!");
|
|
|
- }
|
|
|
- }else {
|
|
|
- SysConfig practiceCourseMinutesConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_COURSE_MINUTES);
|
|
|
- Integer practiceCourseMinutes = practiceCourseMinutesConfig.getParanValue(Integer.class);
|
|
|
- TeacherDefaultPracticeGroupSalary teacherDefaultPracticeGroupSalary = teacherDefaultPracticeGroupSalaryDao.findByTeacherAndCourseMinutes(practiceGroup.getUserId(),practiceCourseMinutes);
|
|
|
-
|
|
|
- if(Objects.isNull(teacherDefaultPracticeGroupSalary)){
|
|
|
- throw new BizException("请设置老师课酬");
|
|
|
+ if(salarySettlement.getSalarySettlementType() == SalarySettlementTypeEnum.FIXED_SALARY){
|
|
|
+ teacherDefaultSalary = salarySettlement.getSettlementValue().setScale(2, BigDecimal.ROUND_CEILING);
|
|
|
}
|
|
|
- teacherDefaultSalary = teacherDefaultPracticeGroupSalary.getMainTeacherSalary();
|
|
|
}
|
|
|
|
|
|
List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries = new ArrayList<>();
|
|
|
@@ -4031,7 +4021,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
activityUserMapper.setPracticeFlag(1);
|
|
|
}
|
|
|
if(activity.isPayToBalance()){
|
|
|
- boolean appendCourseBalance = sysUserCashAccountService.appendCourseBalance(userId, studentPaymentOrder.getExpectAmount().subtract(studentPaymentOrder.getCouponRemitFee()), PlatformCashAccountDetailTypeEnum.RECHARGE, "通用营销活动购买");
|
|
|
+ boolean appendCourseBalance = sysUserCashAccountService.appendCourseBalance(userId, studentPaymentOrder.getExpectAmount(), PlatformCashAccountDetailTypeEnum.RECHARGE, "通用营销活动购买");
|
|
|
if (!appendCourseBalance) {
|
|
|
throw new BizException("增加用户课程余额失败");
|
|
|
}
|
|
|
@@ -4616,6 +4606,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
TeacherDefaultPracticeGroupSalary teacherDefaultPracticeGroupSalary = teacherDefaultPracticeGroupSalaryDao.findByTeacherAndCourseMinutes(teacherId,practiceCourseMinutes);
|
|
|
|
|
|
BigDecimal teacherDefaultSalary = BigDecimal.ZERO;
|
|
|
+ BigDecimal giveTeacherDefaultSalary = BigDecimal.ZERO;
|
|
|
if(Objects.isNull(teacherDefaultPracticeGroupSalary)){
|
|
|
throw new BizException("请设置老师课酬");
|
|
|
}
|
|
|
@@ -4623,7 +4614,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
if (Objects.isNull(practiceGroupSellPrice)) {
|
|
|
throw new BizException("所在城市暂不参与此活动");
|
|
|
}
|
|
|
- Map<String,BigDecimal> results = new HashMap<>(1);
|
|
|
+ Map<String,BigDecimal> results = new HashMap<>(3);
|
|
|
|
|
|
BigDecimal totalPrice = BigDecimal.ZERO;
|
|
|
if(practice.getAllCourseNum() != null){
|
|
|
@@ -4633,6 +4624,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
|
|
|
//课程购买费用计算
|
|
|
VipGroupSalarySettlementTypeDto salarySettlement = null;
|
|
|
+ VipGroupSalarySettlementTypeDto givePracticeSalarySettlement = null;
|
|
|
if(practice.getVipGroupActivityId() != null){
|
|
|
VipGroupActivity vipGroupActivity = vipGroupActivityDao.get(practice.getVipGroupActivityId());
|
|
|
VipGroupSalarySettlementDto vipGroupSalarySettlementDto = JSON.parseObject(vipGroupActivity.getSalarySettlementJson(), VipGroupSalarySettlementDto.class);
|
|
|
@@ -4640,18 +4632,71 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
throw new BizException("课酬结算方案错误");
|
|
|
}
|
|
|
salarySettlement = vipGroupSalarySettlementDto.getPracticeSalarySettlement();
|
|
|
+ givePracticeSalarySettlement = vipGroupSalarySettlementDto.getGivePracticeSalarySettlement();
|
|
|
totalPrice = totalPrice.multiply(vipGroupActivity.getDiscount()).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, ROUND_DOWN);
|
|
|
}
|
|
|
//教师课酬线上单课酬计算
|
|
|
teacherDefaultSalary = teacherDefaultPracticeGroupSalary.getMainTeacherSalary();
|
|
|
+ giveTeacherDefaultSalary = teacherDefaultSalary;
|
|
|
if(Objects.nonNull(salarySettlement)){
|
|
|
if(salarySettlement.getSalarySettlementType() == SalarySettlementTypeEnum.FIXED_SALARY){
|
|
|
teacherDefaultSalary = salarySettlement.getSettlementValue();
|
|
|
}
|
|
|
}
|
|
|
+ if(Objects.nonNull(givePracticeSalarySettlement)){
|
|
|
+ if(givePracticeSalarySettlement.getSalarySettlementType() == SalarySettlementTypeEnum.FIXED_SALARY){
|
|
|
+ giveTeacherDefaultSalary = givePracticeSalarySettlement.getSettlementValue();
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
results.put("totalPrice",totalPrice.setScale(0,BigDecimal.ROUND_CEILING));
|
|
|
results.put("onlineTeacherSalary",teacherDefaultSalary.setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
|
+ results.put("giveTeacherDefaultSalary",giveTeacherDefaultSalary.setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
|
+ return results;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<String, BigDecimal> countPracticeGroupPredictFee1(PracticeGroup practice, Integer teacherId) {
|
|
|
+ if(Objects.isNull(teacherId)){
|
|
|
+ throw new BizException("请指定教师");
|
|
|
+ }
|
|
|
+ SysConfig practiceCourseMinutesConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_COURSE_MINUTES);
|
|
|
+ Integer practiceCourseMinutes = practiceCourseMinutesConfig.getParanValue(Integer.class);
|
|
|
+ TeacherDefaultPracticeGroupSalary teacherDefaultPracticeGroupSalary = teacherDefaultPracticeGroupSalaryDao.findByTeacherAndCourseMinutes(teacherId,practiceCourseMinutes);
|
|
|
+
|
|
|
+ if(Objects.isNull(teacherDefaultPracticeGroupSalary)){
|
|
|
+ throw new BizException("请设置老师课酬");
|
|
|
+ }
|
|
|
+ Map<String,BigDecimal> results = new HashMap<>(2);
|
|
|
+
|
|
|
+ //课程购买费用计算
|
|
|
+ VipGroupSalarySettlementTypeDto salarySettlement = null;
|
|
|
+ VipGroupSalarySettlementTypeDto givePracticeSalarySettlement = null;
|
|
|
+ if(practice.getVipGroupActivityId() != null){
|
|
|
+ VipGroupActivity vipGroupActivity = vipGroupActivityDao.get(practice.getVipGroupActivityId());
|
|
|
+ VipGroupSalarySettlementDto vipGroupSalarySettlementDto = JSON.parseObject(vipGroupActivity.getSalarySettlementJson(), VipGroupSalarySettlementDto.class);
|
|
|
+ if(Objects.isNull(vipGroupSalarySettlementDto)){
|
|
|
+ throw new BizException("课酬结算方案错误");
|
|
|
+ }
|
|
|
+ salarySettlement = vipGroupSalarySettlementDto.getPracticeSalarySettlement();
|
|
|
+ givePracticeSalarySettlement = vipGroupSalarySettlementDto.getGivePracticeSalarySettlement();
|
|
|
+ }
|
|
|
+ //教师课酬线上单课酬计算
|
|
|
+ BigDecimal teacherDefaultSalary = teacherDefaultPracticeGroupSalary.getMainTeacherSalary();
|
|
|
+ BigDecimal giveTeacherDefaultSalary = teacherDefaultSalary;
|
|
|
+ if(Objects.nonNull(salarySettlement)){
|
|
|
+ if(salarySettlement.getSalarySettlementType() == SalarySettlementTypeEnum.FIXED_SALARY){
|
|
|
+ teacherDefaultSalary = salarySettlement.getSettlementValue();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(Objects.nonNull(givePracticeSalarySettlement)){
|
|
|
+ if(givePracticeSalarySettlement.getSalarySettlementType() == SalarySettlementTypeEnum.FIXED_SALARY){
|
|
|
+ giveTeacherDefaultSalary = givePracticeSalarySettlement.getSettlementValue();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ results.put("onlineTeacherSalary",teacherDefaultSalary.setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
|
+ results.put("giveTeacherDefaultSalary",giveTeacherDefaultSalary.setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
|
return results;
|
|
|
}
|
|
|
|
|
|
@@ -4744,9 +4789,9 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
applyBaseInfoDto.setAuditStatus(AuditStatusEnum.PASS);
|
|
|
|
|
|
//如果默认课酬与实际课酬不匹配则需要审批
|
|
|
- if(costInfo.get("onlineTeacherSalary").compareTo(applyBaseInfoDto.getOnlineTeacherSalary()) < 0){
|
|
|
- applyBaseInfoDto.setAuditStatus(AuditStatusEnum.ING);
|
|
|
- }
|
|
|
+// if(costInfo.get("onlineTeacherSalary").compareTo(applyBaseInfoDto.getOnlineTeacherSalary()) < 0){
|
|
|
+// applyBaseInfoDto.setAuditStatus(AuditStatusEnum.ING);
|
|
|
+// }
|
|
|
|
|
|
applyBaseInfoDto.setTotalPrice(costInfo.get("totalPrice"));
|
|
|
applyBaseInfoDto.setOnlineTeacherSalary(costInfo.get("onlineTeacherSalary"));
|
|
|
@@ -4828,21 +4873,21 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
applyBaseInfoDto.setCourseScheduleJson(JSON.toJSONString(courseSchedules));
|
|
|
practiceGroupDao.update(applyBaseInfoDto);
|
|
|
|
|
|
- Set<Integer> roleIds = new HashSet<>(1);
|
|
|
- roleIds.add(SysUserRole.SECTION_MANAGER);
|
|
|
- Map<String,Long> memo = new HashMap<>(1);
|
|
|
- memo.put("practiceGroupId",applyBaseInfoDto.getId());
|
|
|
- if(Objects.isNull(teacher)){
|
|
|
- throw new BizException("该用户不存在");
|
|
|
- }
|
|
|
- Set<Integer> userIds = musicGroupDao.queryUserIdByRoleId(roleIds,teacher.getTeacherOrganId());
|
|
|
- if(CollectionUtils.isEmpty(userIds)){
|
|
|
- throw new BizException("当前分部没有运营主管,无法创建,请联系总部工作人员!");
|
|
|
- }
|
|
|
- if(applyBaseInfoDto.getEducationalTeacherId() != null){
|
|
|
- userIds.add(applyBaseInfoDto.getEducationalTeacherId());
|
|
|
- }
|
|
|
- sysMessageService.batchSeoMessage(userIds,MessageTypeEnum.BACKSTAGE_TEACHER_APPLY_PRACTICE, JSONObject.toJSONString(memo),teacher.getRealName());
|
|
|
+// Set<Integer> roleIds = new HashSet<>(1);
|
|
|
+// roleIds.add(SysUserRole.SECTION_MANAGER);
|
|
|
+// Map<String,Long> memo = new HashMap<>(1);
|
|
|
+// memo.put("practiceGroupId",applyBaseInfoDto.getId());
|
|
|
+// if(Objects.isNull(teacher)){
|
|
|
+// throw new BizException("该用户不存在");
|
|
|
+// }
|
|
|
+// Set<Integer> userIds = musicGroupDao.queryUserIdByRoleId(roleIds,teacher.getTeacherOrganId());
|
|
|
+// if(CollectionUtils.isEmpty(userIds)){
|
|
|
+// throw new BizException("当前分部没有运营主管,无法创建,请联系总部工作人员!");
|
|
|
+// }
|
|
|
+// if(applyBaseInfoDto.getEducationalTeacherId() != null){
|
|
|
+// userIds.add(applyBaseInfoDto.getEducationalTeacherId());
|
|
|
+// }
|
|
|
+// sysMessageService.batchSeoMessage(userIds,MessageTypeEnum.BACKSTAGE_TEACHER_APPLY_PRACTICE, JSONObject.toJSONString(memo),teacher.getRealName());
|
|
|
return BaseController.succeed(applyBaseInfoDto.getAuditStatus().getCode());
|
|
|
}
|
|
|
|
|
|
@@ -4957,7 +5002,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
if(activity.isPayToBalance() && !giveFlag){
|
|
|
ActivityUserMapper activityUserMapper = activityUserMappers.get(0);
|
|
|
StudentPaymentOrder order = studentPaymentOrderDao.get(activityUserMapper.getPaymentOrderId());
|
|
|
- sysUserCashAccountService.appendCourseBalance(studentId,order.getExpectAmount().subtract(order.getCouponRemitFee()).negate(),PlatformCashAccountDetailTypeEnum.PAY_FEE,"活动排课消耗课程余额");
|
|
|
+ sysUserCashAccountService.appendCourseBalance(studentId,order.getExpectAmount().negate(),PlatformCashAccountDetailTypeEnum.PAY_FEE,"活动排课消耗课程余额");
|
|
|
}
|
|
|
|
|
|
//创建班级信息
|
|
|
@@ -4990,11 +5035,10 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
//计算课程相关费用信息
|
|
|
Map<String, BigDecimal> costInfo = countPracticeGroupPredictFee(applyBaseInfo,applyBaseInfo.getUserId());
|
|
|
if(practice.getGiveFlag()){
|
|
|
- applyBaseInfo.setOnlineTeacherSalary(costInfo.get("giveOnlineTeacherSalary"));
|
|
|
+ applyBaseInfo.setOnlineTeacherSalary(costInfo.get("giveTeacherDefaultSalary"));
|
|
|
}else {
|
|
|
applyBaseInfo.setOnlineTeacherSalary(costInfo.get("onlineTeacherSalary"));
|
|
|
}
|
|
|
- practiceGroupDao.update(applyBaseInfo);
|
|
|
|
|
|
//创建班级老师关联记录
|
|
|
ClassGroupTeacherMapper classGroupTeacherMapper=new ClassGroupTeacherMapper();
|
|
|
@@ -5038,25 +5082,47 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
|
|
|
//创建课程
|
|
|
courseScheduleService.batchAddCourseSchedule(courseSchedules);
|
|
|
+
|
|
|
//创建老师单节课课酬信息
|
|
|
- courseScheduleTeacherSalaryService.createCourseScheduleTeacherPracticeSalary(courseSchedules,
|
|
|
- classGroupTeacherSalary.getOnlineClassesSalary());
|
|
|
+ List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries = new ArrayList<>();
|
|
|
+ for (CourseSchedule courseSchedule : courseSchedules) {
|
|
|
+ //创建教师课程薪水记录
|
|
|
+ CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
|
|
|
+ courseScheduleTeacherSalary.setCourseScheduleId(courseSchedule.getId());
|
|
|
+ courseScheduleTeacherSalary.setGroupType(courseSchedule.getGroupType());
|
|
|
+ courseScheduleTeacherSalary.setMusicGroupId(courseSchedule.getMusicGroupId());
|
|
|
+ courseScheduleTeacherSalary.setTeacherRole(TeachTypeEnum.BISHOP);
|
|
|
+ courseScheduleTeacherSalary.setUserId(courseSchedule.getActualTeacherId().intValue());
|
|
|
+ courseScheduleTeacherSalary.setClassGroupId(courseSchedule.getClassGroupId());
|
|
|
+ courseScheduleTeacherSalary.setExpectSalary(classGroupTeacherSalary.getOnlineClassesSalary());
|
|
|
+ courseScheduleTeacherSalary.setActualSalary(null);
|
|
|
+ courseScheduleTeacherSalaries.add(courseScheduleTeacherSalary);
|
|
|
+ }
|
|
|
+ if (courseScheduleTeacherSalaries.size() > 0) {
|
|
|
+ courseScheduleTeacherSalaryService.batchInsert(courseScheduleTeacherSalaries);
|
|
|
+ }
|
|
|
|
|
|
List<ClassGroupStudentMapper> classGroupStudents = classGroupStudentMapperDao.findByClassGroup(classGroup.getId());
|
|
|
|
|
|
- Map<Integer,String> userRoleMap = new HashMap<>();
|
|
|
- if(Objects.nonNull(applyBaseInfo.getEducationalTeacherId())){
|
|
|
- userRoleMap.put(applyBaseInfo.getEducationalTeacherId(),"乐团主管");
|
|
|
- }
|
|
|
- userRoleMap.put(applyBaseInfo.getUserId(),"指导老师");
|
|
|
- SysConfig practiceCourseMinutesConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_COURSE_MINUTES);
|
|
|
- Integer practiceCourseMinutes = practiceCourseMinutesConfig.getParanValue(Integer.class);
|
|
|
- TeacherDefaultPracticeGroupSalary teacherDefaultPracticeGroupSalary = teacherDefaultPracticeGroupSalaryDao.findByTeacherAndCourseMinutes(applyBaseInfo.getUserId(),practiceCourseMinutes);
|
|
|
+// Map<Integer,String> userRoleMap = new HashMap<>();
|
|
|
+// if(Objects.nonNull(applyBaseInfo.getEducationalTeacherId())){
|
|
|
+// userRoleMap.put(applyBaseInfo.getEducationalTeacherId(),"乐团主管");
|
|
|
+// }
|
|
|
+// userRoleMap.put(applyBaseInfo.getUserId(),"指导老师");
|
|
|
|
|
|
+ PracticeGroupSellPrice practiceGroupSellPrice = practiceGroupSellPriceDao.get(applyBaseInfo.getOrganId());
|
|
|
+ BigDecimal singleClassMinutesPrice = practiceGroupSellPrice.getSingleClassMinutesPrice();
|
|
|
//生成学生单课缴费信息
|
|
|
+ Map<Integer, List<ActivityUserMapper>> collect = activityUserMappers.stream().collect(Collectors.groupingBy(ActivityUserMapper::getUserId));
|
|
|
for (ClassGroupStudentMapper classGroupStudent : classGroupStudents) {
|
|
|
List<CourseScheduleStudentPayment> courseScheduleStudentPayments=new ArrayList<>();
|
|
|
- for (CourseSchedule courseSchedule : courseSchedules) {
|
|
|
+ //实际支付金额,去除优惠券
|
|
|
+ ActivityUserMapper activityUserMapper = collect.get(classGroupStudent.getUserId()).get(0);
|
|
|
+ BigDecimal totalAmount = activityUserMapper.getActualPrice();
|
|
|
+ BigDecimal singleAmount = totalAmount.divide(new BigDecimal(courseSchedules.size()), ROUND_DOWN);
|
|
|
+ BigDecimal firstSingleAmount = totalAmount.subtract(singleAmount.multiply(new BigDecimal(courseSchedules.size()))).add(singleAmount);
|
|
|
+ for (int i = 0; i < courseSchedules.size(); i++) {
|
|
|
+ CourseSchedule courseSchedule = courseSchedules.get(i);
|
|
|
CourseScheduleStudentPayment courseScheduleStudentPayment = new CourseScheduleStudentPayment();
|
|
|
courseScheduleStudentPayment.setUserId(classGroupStudent.getUserId());
|
|
|
courseScheduleStudentPayment.setGroupType(courseSchedule.getGroupType());
|
|
|
@@ -5065,19 +5131,22 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
courseScheduleStudentPayment.setClassGroupId(courseSchedule.getClassGroupId());
|
|
|
if(practice.getGiveFlag()){
|
|
|
courseScheduleStudentPayment.setExpectPrice(BigDecimal.ZERO);
|
|
|
- courseScheduleStudentPayment.setOriginalPrice(BigDecimal.ZERO);
|
|
|
}else {
|
|
|
- courseScheduleStudentPayment.setExpectPrice(teacherDefaultPracticeGroupSalary.getMainTeacherSalary());
|
|
|
- courseScheduleStudentPayment.setOriginalPrice(teacherDefaultPracticeGroupSalary.getMainTeacherSalary());
|
|
|
+ if(i == 1){
|
|
|
+ courseScheduleStudentPayment.setExpectPrice(firstSingleAmount);
|
|
|
+ }else {
|
|
|
+ courseScheduleStudentPayment.setExpectPrice(singleAmount);
|
|
|
+ }
|
|
|
}
|
|
|
+ courseScheduleStudentPayment.setOriginalPrice(singleClassMinutesPrice);
|
|
|
courseScheduleStudentPayment.setActualPrice(courseScheduleStudentPayment.getExpectPrice());
|
|
|
courseScheduleStudentPayments.add(courseScheduleStudentPayment);
|
|
|
}
|
|
|
courseScheduleStudentPaymentDao.batchInsert(courseScheduleStudentPayments);
|
|
|
- userRoleMap.put(classGroupStudent.getUserId(),null);
|
|
|
+// userRoleMap.put(classGroupStudent.getUserId(),null);
|
|
|
studentDao.updateStudentServiceTag(classGroupStudent.getUserId(), null, YesOrNoEnum.YES.getCode());
|
|
|
}
|
|
|
- courseScheduleService.checkNewCourseSchedules(courseSchedules, false,false);
|
|
|
+// courseScheduleService.checkNewCourseSchedules(courseSchedules, false,false);
|
|
|
return BaseController.succeed(applyBaseInfo.getAuditStatus().getCode());
|
|
|
}
|
|
|
|
|
|
@@ -5126,17 +5195,10 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
throw new BizException("课程信息错误");
|
|
|
}
|
|
|
|
|
|
- Date date=new Date();
|
|
|
+ Date date = new Date();
|
|
|
|
|
|
PracticeGroup practiceGroup = practiceGroupDao.get(practiceGroupBuyParams.getPracticeGroupId());
|
|
|
|
|
|
- if(classGroup.getStudentNum() > 0){
|
|
|
- int i = studentPaymentOrderDao.countGroupOrderWithoutFailed(practiceGroupBuyParams.getPracticeGroupId().toString(),GroupType.PRACTICE);
|
|
|
- if(i <= 0){
|
|
|
- throw new BizException("该课程已经无法通过购买加入,请联系教务老师!");
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
VipGroupActivity vipGroupActivity = null;
|
|
|
if(Objects.nonNull(practiceGroup.getVipGroupActivityId())){
|
|
|
vipGroupActivity = vipGroupActivityDao.get(practiceGroup.getVipGroupActivityId().intValue());
|