|
@@ -1,106 +1,16 @@
|
|
|
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.HashMap;
|
|
|
-import java.util.HashSet;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Objects;
|
|
|
-import java.util.stream.Collectors;
|
|
|
-
|
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
-import org.springframework.transaction.annotation.Propagation;
|
|
|
-import org.springframework.transaction.annotation.Transactional;
|
|
|
-import org.springframework.util.CollectionUtils;
|
|
|
-
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
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.ClassGroupStudentMapperDao;
|
|
|
-import com.ym.mec.biz.dal.dao.ClassGroupTeacherMapperDao;
|
|
|
-import com.ym.mec.biz.dal.dao.ClassGroupTeacherSalaryDao;
|
|
|
-import com.ym.mec.biz.dal.dao.CourseScheduleDao;
|
|
|
-import com.ym.mec.biz.dal.dao.CourseScheduleStudentPaymentDao;
|
|
|
-import com.ym.mec.biz.dal.dao.CourseScheduleTeacherSalaryDao;
|
|
|
-import com.ym.mec.biz.dal.dao.StudentApplyRefundsDao;
|
|
|
-import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
|
|
|
-import com.ym.mec.biz.dal.dao.SubjectDao;
|
|
|
-import com.ym.mec.biz.dal.dao.SysConfigDao;
|
|
|
-import com.ym.mec.biz.dal.dao.SysUserCashAccountDetailDao;
|
|
|
-import com.ym.mec.biz.dal.dao.TeacherAttendanceDao;
|
|
|
-import com.ym.mec.biz.dal.dao.TeacherDao;
|
|
|
-import com.ym.mec.biz.dal.dao.TeacherDefaultVipGroupSalaryDao;
|
|
|
-import com.ym.mec.biz.dal.dao.VipGroupActivityDao;
|
|
|
-import com.ym.mec.biz.dal.dao.VipGroupCategoryDao;
|
|
|
-import com.ym.mec.biz.dal.dao.VipGroupClassGroupMapperDao;
|
|
|
-import com.ym.mec.biz.dal.dao.VipGroupDao;
|
|
|
-import com.ym.mec.biz.dal.dao.VipGroupDefaultClassesCycleDao;
|
|
|
-import com.ym.mec.biz.dal.dao.VipGroupDefaultClassesUnitPriceDao;
|
|
|
-import com.ym.mec.biz.dal.dto.StudentVipGroupDetailDto;
|
|
|
-import com.ym.mec.biz.dal.dto.TeachingRecordBaseInfo;
|
|
|
-import com.ym.mec.biz.dal.dto.VipGroupApplyBaseInfoDto;
|
|
|
-import com.ym.mec.biz.dal.dto.VipGroupApplyDto;
|
|
|
-import com.ym.mec.biz.dal.dto.VipGroupBuyParamsDto;
|
|
|
-import com.ym.mec.biz.dal.dto.VipGroupCostCountDto;
|
|
|
-import com.ym.mec.biz.dal.dto.VipGroupCostCountParamsDto;
|
|
|
-import com.ym.mec.biz.dal.dto.VipGroupManageDetailDto;
|
|
|
-import com.ym.mec.biz.dal.dto.VipGroupSalaryBaseInfo;
|
|
|
-import com.ym.mec.biz.dal.dto.VipGroupSalaryDto;
|
|
|
-import com.ym.mec.biz.dal.dto.VipGroupSalarySettlementDto;
|
|
|
-import com.ym.mec.biz.dal.entity.ClassGroup;
|
|
|
-import com.ym.mec.biz.dal.entity.ClassGroupStudentMapper;
|
|
|
-import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
|
|
|
-import com.ym.mec.biz.dal.entity.ClassGroupTeacherSalary;
|
|
|
-import com.ym.mec.biz.dal.entity.CourseSchedule;
|
|
|
+import com.ym.mec.biz.dal.dao.*;
|
|
|
+import com.ym.mec.biz.dal.dto.*;
|
|
|
+import com.ym.mec.biz.dal.entity.*;
|
|
|
import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
|
|
|
-import com.ym.mec.biz.dal.entity.School;
|
|
|
-import com.ym.mec.biz.dal.entity.StudentApplyRefunds;
|
|
|
import com.ym.mec.biz.dal.entity.StudentApplyRefunds.StudentApplyRefundsStatus;
|
|
|
-import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
|
|
|
-import com.ym.mec.biz.dal.entity.SysUserCashAccount;
|
|
|
-import com.ym.mec.biz.dal.entity.SysUserCashAccountDetail;
|
|
|
-import com.ym.mec.biz.dal.entity.Teacher;
|
|
|
-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.entity.VipGroupCategory;
|
|
|
-import com.ym.mec.biz.dal.entity.VipGroupClassGroupMapper;
|
|
|
-import com.ym.mec.biz.dal.entity.VipGroupDefaultClassesCycle;
|
|
|
-import com.ym.mec.biz.dal.entity.VipGroupDefaultClassesUnitPrice;
|
|
|
-import com.ym.mec.biz.dal.enums.AuditStatusEnum;
|
|
|
-import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
|
|
|
-import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
|
|
|
-import com.ym.mec.biz.dal.enums.CourseStatusEnum;
|
|
|
-import com.ym.mec.biz.dal.enums.DealStatusEnum;
|
|
|
-import com.ym.mec.biz.dal.enums.MessageTypeEnum;
|
|
|
-import com.ym.mec.biz.dal.enums.OrderTypeEnum;
|
|
|
-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.VipGroupStatusEnum;
|
|
|
-import com.ym.mec.biz.dal.enums.YesOrNoEnum;
|
|
|
-import com.ym.mec.biz.dal.page.StudentVipGroupQueryInfo;
|
|
|
-import com.ym.mec.biz.dal.page.VipGroupAttendanceQueryInfo;
|
|
|
-import com.ym.mec.biz.dal.page.VipGroupQueryInfo;
|
|
|
-import com.ym.mec.biz.dal.page.VipGroupSalaryQueryInfo;
|
|
|
-import com.ym.mec.biz.dal.page.VipGroupTeachingRecordQueryInfo;
|
|
|
-import com.ym.mec.biz.service.ContractService;
|
|
|
-import com.ym.mec.biz.service.CourseScheduleRewardsRulesService;
|
|
|
-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.PayService;
|
|
|
-import com.ym.mec.biz.service.SysConfigService;
|
|
|
-import com.ym.mec.biz.service.SysMessageService;
|
|
|
-import com.ym.mec.biz.service.SysUserCashAccountDetailService;
|
|
|
-import com.ym.mec.biz.service.SysUserCashAccountService;
|
|
|
-import com.ym.mec.biz.service.VipGroupService;
|
|
|
+import com.ym.mec.biz.dal.enums.*;
|
|
|
+import com.ym.mec.biz.dal.page.*;
|
|
|
+import com.ym.mec.biz.service.*;
|
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
|
import com.ym.mec.common.entity.ImGroupMember;
|
|
|
import com.ym.mec.common.entity.ImGroupModel;
|
|
@@ -111,6 +21,16 @@ import com.ym.mec.im.ImFeignService;
|
|
|
import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
|
|
|
import com.ym.mec.util.collection.MapUtil;
|
|
|
import com.ym.mec.util.date.DateUtil;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Propagation;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
+
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
|
public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> implements VipGroupService {
|
|
@@ -360,17 +280,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void updateVipGroup(VipGroupApplyDto vipGroupApplyInfo) {
|
|
|
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课
|
|
|
- vipGroupUpdateInfo.setUpdateTime(now);
|
|
|
- vipGroupDao.update(vipGroupUpdateInfo);
|
|
|
+ updateVipGroupBaseInfo(vipGroupUpdateInfo);
|
|
|
|
|
|
//课程调整
|
|
|
List<CourseSchedule> courseSchedules = vipGroupApplyInfo.getCourseSchedules();
|
|
@@ -579,6 +490,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
}
|
|
|
VipGroupManageDetailDto vipGroupBaseInfo = vipGroupDao.getVipGroupBaseInfo(vipGroupId);
|
|
|
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;
|
|
|
}
|
|
|
|
|
@@ -1254,4 +1168,49 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
public List<School> querySchoolByUserId(Integer 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());
|
|
|
+ }
|
|
|
}
|