|
@@ -1,14 +1,14 @@
|
|
|
package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
-import java.math.BigDecimal;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Comparator;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Objects;
|
|
|
-import java.util.stream.Collectors;
|
|
|
-
|
|
|
+import com.ym.mec.biz.dal.dao.*;
|
|
|
+import com.ym.mec.biz.dal.entity.*;
|
|
|
+import com.ym.mec.biz.dal.enums.*;
|
|
|
+import com.ym.mec.biz.service.CourseScheduleTeacherSalaryService;
|
|
|
+import com.ym.mec.biz.service.SysConfigService;
|
|
|
+import com.ym.mec.biz.service.SysUserCashAccountService;
|
|
|
+import com.ym.mec.biz.service.VipGroupService;
|
|
|
+import com.ym.mec.common.dal.BaseDAO;
|
|
|
+import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -16,38 +16,9 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
-import com.alibaba.fastjson.JSON;
|
|
|
-import com.ym.mec.biz.dal.dao.CourseScheduleComplaintsDao;
|
|
|
-import com.ym.mec.biz.dal.dao.CourseScheduleStudentPaymentDao;
|
|
|
-import com.ym.mec.biz.dal.dao.CourseScheduleTeacherSalaryDao;
|
|
|
-import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
|
|
|
-import com.ym.mec.biz.dal.dao.SysConfigDao;
|
|
|
-import com.ym.mec.biz.dal.dao.TeacherDefaultVipGroupSalaryDao;
|
|
|
-import com.ym.mec.biz.dal.dao.VipGroupActivityDao;
|
|
|
-import com.ym.mec.biz.dal.dto.VipGroupSalarySettlementDto;
|
|
|
-import com.ym.mec.biz.dal.entity.CourseSchedule;
|
|
|
-import com.ym.mec.biz.dal.entity.CourseScheduleComplaints;
|
|
|
-import com.ym.mec.biz.dal.entity.CourseScheduleStudentPayment;
|
|
|
-import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
|
|
|
-import com.ym.mec.biz.dal.entity.SysConfig;
|
|
|
-import com.ym.mec.biz.dal.entity.SysUserCashAccount;
|
|
|
-import com.ym.mec.biz.dal.entity.SysUserCashAccountDetail;
|
|
|
-import com.ym.mec.biz.dal.entity.TeacherDefaultVipGroupSalary;
|
|
|
-import com.ym.mec.biz.dal.entity.VipGroup;
|
|
|
-import com.ym.mec.biz.dal.entity.VipGroupActivity;
|
|
|
-import com.ym.mec.biz.dal.enums.AuditStatusEnum;
|
|
|
-import com.ym.mec.biz.dal.enums.DealStatusEnum;
|
|
|
-import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
|
|
|
-import com.ym.mec.biz.dal.enums.TeachModeEnum;
|
|
|
-import com.ym.mec.biz.dal.enums.TeachTypeEnum;
|
|
|
-import com.ym.mec.biz.dal.enums.VipGroupActivityTypeEnum;
|
|
|
-import com.ym.mec.biz.service.CourseScheduleTeacherSalaryService;
|
|
|
-import com.ym.mec.biz.service.SysConfigService;
|
|
|
-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.exception.BizException;
|
|
|
-import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
|
public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long, CourseScheduleTeacherSalary> implements CourseScheduleTeacherSalaryService {
|
|
@@ -65,9 +36,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
@Autowired
|
|
|
private SysUserCashAccountService sysUserCashAccountService;
|
|
|
@Autowired
|
|
|
- private SysUserCashAccountDetailService sysUserCashAccountDetailService;
|
|
|
- @Autowired
|
|
|
- private StudentPaymentOrderDao studentPaymentOrderDao;
|
|
|
+ private VipGroupService vipGroupService;
|
|
|
|
|
|
@Autowired
|
|
|
private SysConfigDao sysConfigDao;
|
|
@@ -85,12 +54,8 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
List<CourseSchedule> vipCourseSchedules,
|
|
|
BigDecimal onlineTeacherSalary,
|
|
|
BigDecimal offlineTeacherSalary) {
|
|
|
- TeacherDefaultVipGroupSalary teacherDefaultVipGroupSalary = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(vipGroup.getUserId().longValue(),
|
|
|
- vipGroup.getVipGroupCategoryId());
|
|
|
-
|
|
|
//获取活动信息
|
|
|
VipGroupActivity vipGroupActivity = vipGroupActivityDao.get(vipGroup.getVipGroupActivityId().intValue());
|
|
|
- VipGroupSalarySettlementDto vipGroupSalarySettlementDto = JSON.parseObject(vipGroupActivity.getSalarySettlementJson(), VipGroupSalarySettlementDto.class);
|
|
|
|
|
|
List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries=new ArrayList<>();
|
|
|
Map<TeachModeEnum, List<CourseSchedule>> courseScheduleGroupByTeachMode = vipCourseSchedules.stream().collect(Collectors.groupingBy(CourseSchedule::getTeachMode));
|
|
@@ -107,42 +72,22 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
courseScheduleTeacherSalary.setUserId(vipGroup.getUserId());
|
|
|
courseScheduleTeacherSalary.setClassGroupId(courseSchedules.get(i).getClassGroupId());
|
|
|
|
|
|
- if(teachModeEnum==TeachModeEnum.ONLINE){
|
|
|
- if(vipGroupActivity.getType()== VipGroupActivityTypeEnum.GIVE_CLASS
|
|
|
- &&vipGroup.getGiveTeachMode()==teachModeEnum
|
|
|
- &&i>=Integer.parseInt(vipGroupActivity.getAttribute1())
|
|
|
- &&"0".equals(vipGroupActivity.getGiveClassPaySalaryFlag())){
|
|
|
- courseScheduleTeacherSalary.setExpectSalary(new BigDecimal(0));
|
|
|
- }else {
|
|
|
- //教师课酬线上单课酬计算
|
|
|
- switch (vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSalarySettlementType()){
|
|
|
- case TEACHER_DEFAULT:
|
|
|
- courseScheduleTeacherSalary.setExpectSalary(teacherDefaultVipGroupSalary.getOnlineClassesSalary());
|
|
|
- break;
|
|
|
- case RATIO_DISCOUNT:
|
|
|
- courseScheduleTeacherSalary.setExpectSalary(onlineTeacherSalary.multiply(vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSettlementValue()));
|
|
|
- break;
|
|
|
- case FIXED_SALARY:
|
|
|
- courseScheduleTeacherSalary.setExpectSalary(vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSettlementValue());
|
|
|
- break;
|
|
|
- default:
|
|
|
- throw new BizException("未指定课酬结算标准!");
|
|
|
- }
|
|
|
- }
|
|
|
- }else{
|
|
|
- //教师线下单课酬计算
|
|
|
- switch (vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSalarySettlementType()){
|
|
|
- case TEACHER_DEFAULT:
|
|
|
- courseScheduleTeacherSalary.setExpectSalary(teacherDefaultVipGroupSalary.getOfflineClassesSalary());
|
|
|
- break;
|
|
|
- case RATIO_DISCOUNT:
|
|
|
- courseScheduleTeacherSalary.setExpectSalary(offlineTeacherSalary.multiply(vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSettlementValue()));
|
|
|
- break;
|
|
|
- case FIXED_SALARY:
|
|
|
- courseScheduleTeacherSalary.setExpectSalary(vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSettlementValue());
|
|
|
- break;
|
|
|
- default:
|
|
|
- throw new BizException("未指定课酬结算标准!");
|
|
|
+ Map<String,BigDecimal> feeInfo = vipGroupService.countVipGroupPredictFee(vipGroup,
|
|
|
+ courseSchedules.get(i).getActualTeacherId().intValue(),
|
|
|
+ onlineTeacherSalary,
|
|
|
+ offlineTeacherSalary,
|
|
|
+ false);
|
|
|
+
|
|
|
+ if(vipGroupActivity.getType()== VipGroupActivityTypeEnum.GIVE_CLASS
|
|
|
+ &&vipGroup.getGiveTeachMode()==teachModeEnum
|
|
|
+ &&i>=Integer.parseInt(vipGroupActivity.getAttribute1())
|
|
|
+ &&"0".equals(vipGroupActivity.getGiveClassPaySalaryFlag())){
|
|
|
+ courseScheduleTeacherSalary.setExpectSalary(new BigDecimal(0));
|
|
|
+ }else {
|
|
|
+ if(teachModeEnum==TeachModeEnum.ONLINE){
|
|
|
+ courseScheduleTeacherSalary.setExpectSalary(feeInfo.get("onlineTeacherSalary"));
|
|
|
+ }else{
|
|
|
+ courseScheduleTeacherSalary.setExpectSalary(feeInfo.get("offlineTeacherSalary"));
|
|
|
}
|
|
|
}
|
|
|
courseScheduleTeacherSalaries.add(courseScheduleTeacherSalary);
|