|
@@ -1,5 +1,10 @@
|
|
|
package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
+import static com.ym.mec.biz.dal.enums.GroupType.COMM;
|
|
|
+import static com.ym.mec.biz.dal.enums.GroupType.MUSIC;
|
|
|
+import static com.ym.mec.biz.dal.enums.GroupType.PRACTICE;
|
|
|
+import static com.ym.mec.biz.dal.enums.GroupType.VIP;
|
|
|
+
|
|
|
import java.math.BigDecimal;
|
|
|
import java.time.Duration;
|
|
|
import java.time.Instant;
|
|
@@ -20,9 +25,6 @@ import java.util.Objects;
|
|
|
import java.util.Set;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
-import com.ym.mec.biz.dal.dao.*;
|
|
|
-import com.ym.mec.biz.dal.entity.*;
|
|
|
-import com.ym.mec.biz.service.*;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -34,6 +36,31 @@ import com.alibaba.fastjson.JSON;
|
|
|
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.biz.dal.dao.ClassGroupDao;
|
|
|
+import com.ym.mec.biz.dal.dao.ClassGroupRelationDao;
|
|
|
+import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao;
|
|
|
+import com.ym.mec.biz.dal.dao.ClassGroupTeacherMapperDao;
|
|
|
+import com.ym.mec.biz.dal.dao.CourseScheduleDao;
|
|
|
+import com.ym.mec.biz.dal.dao.CourseScheduleEvaluateDao;
|
|
|
+import com.ym.mec.biz.dal.dao.CourseScheduleStudentPaymentDao;
|
|
|
+import com.ym.mec.biz.dal.dao.CourseScheduleTeacherSalaryDao;
|
|
|
+import com.ym.mec.biz.dal.dao.CoursesGroupDao;
|
|
|
+import com.ym.mec.biz.dal.dao.GroupDao;
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupBuildLogDao;
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupDao;
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDao;
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
|
|
|
+import com.ym.mec.biz.dal.dao.PracticeGroupDao;
|
|
|
+import com.ym.mec.biz.dal.dao.SchoolDao;
|
|
|
+import com.ym.mec.biz.dal.dao.StudentApplyRefundsDao;
|
|
|
+import com.ym.mec.biz.dal.dao.StudentAttendanceDao;
|
|
|
+import com.ym.mec.biz.dal.dao.StudentDao;
|
|
|
+import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
|
|
|
+import com.ym.mec.biz.dal.dao.SubjectDao;
|
|
|
+import com.ym.mec.biz.dal.dao.SysConfigDao;
|
|
|
+import com.ym.mec.biz.dal.dao.TeacherAttendanceDao;
|
|
|
+import com.ym.mec.biz.dal.dao.TeacherDao;
|
|
|
+import com.ym.mec.biz.dal.dao.VipGroupDao;
|
|
|
import com.ym.mec.biz.dal.dto.ClassGroup4MixDto;
|
|
|
import com.ym.mec.biz.dal.dto.ClassGroupImGroupDto;
|
|
|
import com.ym.mec.biz.dal.dto.ClassGroupTeacherMapDto;
|
|
@@ -52,7 +79,27 @@ import com.ym.mec.biz.dal.dto.TeacherClassHeadInfo;
|
|
|
import com.ym.mec.biz.dal.dto.TeacherMusicClassInfoDto;
|
|
|
import com.ym.mec.biz.dal.dto.TeacherVipClassInfoDto;
|
|
|
import com.ym.mec.biz.dal.dto.UserMusicGroupQueryInfo;
|
|
|
+import com.ym.mec.biz.dal.entity.ClassGroup;
|
|
|
+import com.ym.mec.biz.dal.entity.ClassGroupRelation;
|
|
|
+import com.ym.mec.biz.dal.entity.ClassGroupStudentMapper;
|
|
|
+import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
|
|
|
+import com.ym.mec.biz.dal.entity.CourseSchedule;
|
|
|
import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
|
|
|
+import com.ym.mec.biz.dal.entity.CourseScheduleEvaluate;
|
|
|
+import com.ym.mec.biz.dal.entity.CourseScheduleStudentPayment;
|
|
|
+import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
|
|
|
+import com.ym.mec.biz.dal.entity.CoursesGroup;
|
|
|
+import com.ym.mec.biz.dal.entity.Group;
|
|
|
+import com.ym.mec.biz.dal.entity.MusicGroup;
|
|
|
+import com.ym.mec.biz.dal.entity.MusicGroupBuildLog;
|
|
|
+import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderCourseSettings;
|
|
|
+import com.ym.mec.biz.dal.entity.PracticeGroup;
|
|
|
+import com.ym.mec.biz.dal.entity.StudentRegistration;
|
|
|
+import com.ym.mec.biz.dal.entity.Subject;
|
|
|
+import com.ym.mec.biz.dal.entity.SysConfig;
|
|
|
+import com.ym.mec.biz.dal.entity.Teacher;
|
|
|
+import com.ym.mec.biz.dal.entity.TeacherDefaultMusicGroupSalary;
|
|
|
+import com.ym.mec.biz.dal.entity.VipGroup;
|
|
|
import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
|
|
|
import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
|
|
|
import com.ym.mec.biz.dal.enums.CourseStatusEnum;
|
|
@@ -71,6 +118,17 @@ import com.ym.mec.biz.dal.page.StudentPayLogQueryInfo;
|
|
|
import com.ym.mec.biz.dal.page.TeacherMusicClassQueryInfo;
|
|
|
import com.ym.mec.biz.dal.page.VipClassQueryInfo;
|
|
|
import com.ym.mec.biz.dal.page.queryMusicGroupCourseScheduleQueryInfo;
|
|
|
+import com.ym.mec.biz.service.ClassGroupRelationService;
|
|
|
+import com.ym.mec.biz.service.ClassGroupService;
|
|
|
+import com.ym.mec.biz.service.ClassGroupTeacherMapperService;
|
|
|
+import com.ym.mec.biz.service.CourseScheduleService;
|
|
|
+import com.ym.mec.biz.service.CourseScheduleStudentPaymentService;
|
|
|
+import com.ym.mec.biz.service.CourseScheduleTeacherSalaryService;
|
|
|
+import com.ym.mec.biz.service.MusicGroupPaymentCalenderCourseSettingsService;
|
|
|
+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.TeacherDefaultMusicGroupSalaryService;
|
|
|
import com.ym.mec.common.constant.CommonConstants;
|
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
|
import com.ym.mec.common.entity.ImGroupMember;
|
|
@@ -86,8 +144,6 @@ import com.ym.mec.util.collection.MapUtil;
|
|
|
import com.ym.mec.util.date.DateConvertor;
|
|
|
import com.ym.mec.util.date.DateUtil;
|
|
|
|
|
|
-import static com.ym.mec.biz.dal.enums.GroupType.*;
|
|
|
-
|
|
|
@Service
|
|
|
public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup> implements ClassGroupService {
|
|
|
|
|
@@ -1096,19 +1152,29 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
|
|
|
// 计算单价
|
|
|
Map<CourseScheduleType, BigDecimal> unitPriceMap = new HashMap<CourseSchedule.CourseScheduleType, BigDecimal>();
|
|
|
- Map<CourseScheduleType, BigDecimal> OriginTotalPriceMap = new HashMap<CourseSchedule.CourseScheduleType, BigDecimal>();
|
|
|
+ Map<CourseScheduleType, BigDecimal> originUnitPriceMap = new HashMap<CourseSchedule.CourseScheduleType, BigDecimal>();
|
|
|
+ Map<CourseScheduleType, BigDecimal> totalCurrentPriceMap = new HashMap<CourseSchedule.CourseScheduleType, BigDecimal>();
|
|
|
+ Map<CourseScheduleType, BigDecimal> totalOriginPriceMap = new HashMap<CourseSchedule.CourseScheduleType, BigDecimal>();
|
|
|
for (MusicGroupPaymentCalenderCourseSettings musicGroupPaymentCalenderCourseSettings : musicGroupPaymentCalenderCourseSettingsList) {
|
|
|
unitPriceMap.put(
|
|
|
musicGroupPaymentCalenderCourseSettings.getCourseType(),
|
|
|
musicGroupPaymentCalenderCourseSettings.getCourseCurrentPrice().divide(
|
|
|
new BigDecimal(musicGroupPaymentCalenderCourseSettings.getCourseTotalMinuties()),CommonConstants.DECIMAL_FINAL_PLACE,BigDecimal.ROUND_DOWN));
|
|
|
|
|
|
- OriginTotalPriceMap.put(musicGroupPaymentCalenderCourseSettings.getCourseType(), musicGroupPaymentCalenderCourseSettings.getCourseCurrentPrice());
|
|
|
+ originUnitPriceMap.put(
|
|
|
+ musicGroupPaymentCalenderCourseSettings.getCourseType(),
|
|
|
+ musicGroupPaymentCalenderCourseSettings.getCourseOriginalPrice().divide(
|
|
|
+ new BigDecimal(musicGroupPaymentCalenderCourseSettings.getCourseTotalMinuties()),CommonConstants.DECIMAL_FINAL_PLACE,BigDecimal.ROUND_DOWN));
|
|
|
+
|
|
|
+ totalCurrentPriceMap.put(musicGroupPaymentCalenderCourseSettings.getCourseType(), musicGroupPaymentCalenderCourseSettings.getCourseCurrentPrice());
|
|
|
+ totalOriginPriceMap.put(musicGroupPaymentCalenderCourseSettings.getCourseType(), musicGroupPaymentCalenderCourseSettings.getCourseOriginalPrice());
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
Map<CourseScheduleType, BigDecimal> totalPriceMap = new HashMap<CourseSchedule.CourseScheduleType, BigDecimal>();
|
|
|
+ Map<CourseScheduleType, BigDecimal> totalOrignPriceMap = new HashMap<CourseSchedule.CourseScheduleType, BigDecimal>();
|
|
|
|
|
|
BigDecimal unitPrice = new BigDecimal(0);
|
|
|
+ BigDecimal originUnitPrice = new BigDecimal(0);
|
|
|
CourseScheduleType courseType = null;
|
|
|
for (ClassGroup classGroup : classGroupList) {
|
|
|
// 1、增加班级人数
|
|
@@ -1147,6 +1213,19 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
totalPriceMap.put(courseType, courseScheduleStudentPayment.getExpectPrice());
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ originUnitPrice = originUnitPriceMap.get(courseSchedule.getType());
|
|
|
+ if (originUnitPrice != null) {
|
|
|
+ courseType = courseSchedule.getType();
|
|
|
+ BigDecimal duration = new BigDecimal(DateUtil.minutesBetween(courseSchedule.getStartClassTime(), courseSchedule.getEndClassTime()));
|
|
|
+ courseScheduleStudentPayment.setOriginalPrice(originUnitPrice.multiply(duration).setScale(2, BigDecimal.ROUND_DOWN));
|
|
|
+
|
|
|
+ if (totalOrignPriceMap.containsKey(courseType)) {
|
|
|
+ totalOrignPriceMap.put(courseType, totalOrignPriceMap.get(courseType).add(courseScheduleStudentPayment.getOriginalPrice()));
|
|
|
+ } else {
|
|
|
+ totalOrignPriceMap.put(courseType, courseScheduleStudentPayment.getExpectPrice());
|
|
|
+ }
|
|
|
+ }
|
|
|
courseScheduleStudentPayment.setClassGroupId(classGroup.getId());
|
|
|
courseScheduleStudentPayment.setCreateTime(date);
|
|
|
courseScheduleStudentPayment.setUpdateTime(date);
|
|
@@ -1170,7 +1249,10 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
|
|
|
// 修改第一节课的金额
|
|
|
courseScheduleStudentPayment.setExpectPrice(courseScheduleStudentPayment.getExpectPrice().add(
|
|
|
- OriginTotalPriceMap.get(courseType).subtract(totalPriceMap.get(courseType))));
|
|
|
+ totalCurrentPriceMap.get(courseType).subtract(totalPriceMap.get(courseType))));
|
|
|
+
|
|
|
+ courseScheduleStudentPayment.setOriginalPrice(courseScheduleStudentPayment.getOriginalPrice().add(
|
|
|
+ totalOriginPriceMap.get(courseType).subtract(totalOrignPriceMap.get(courseType))));
|
|
|
}
|
|
|
}
|
|
|
courseScheduleStudentPaymentService.batchInsert(courseScheduleStudentPayments);
|