瀏覽代碼

Merge remote-tracking branch 'origin/master'

Joburgess 4 年之前
父節點
當前提交
85a6ee2e10
共有 1 個文件被更改,包括 91 次插入9 次删除
  1. 91 9
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

+ 91 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -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);