|
@@ -1,17 +1,179 @@
|
|
|
package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
+import static com.ym.mec.biz.dal.enums.GroupType.VIP;
|
|
|
+import static com.ym.mec.biz.dal.enums.SysUserRoleEnum.ORGAN_MANAGER;
|
|
|
+import static java.math.BigDecimal.ROUND_DOWN;
|
|
|
+import static java.math.BigDecimal.ZERO;
|
|
|
+
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.time.LocalDate;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.Collections;
|
|
|
+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.Set;
|
|
|
+import java.util.function.Function;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.context.annotation.Lazy;
|
|
|
+import org.springframework.http.HttpStatus;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Isolation;
|
|
|
+import org.springframework.transaction.annotation.Propagation;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
+
|
|
|
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.*;
|
|
|
-import com.ym.mec.biz.dal.dto.*;
|
|
|
-import com.ym.mec.biz.dal.entity.*;
|
|
|
+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.EmployeeDao;
|
|
|
+import com.ym.mec.biz.dal.dao.GroupDao;
|
|
|
+import com.ym.mec.biz.dal.dao.OrganizationDao;
|
|
|
+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.StudentPauseInfoDao;
|
|
|
+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.SysUserCashAccountLogDao;
|
|
|
+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.VipGroupDao;
|
|
|
+import com.ym.mec.biz.dal.dao.VipGroupDefaultClassesCycleDao;
|
|
|
+import com.ym.mec.biz.dal.dao.VipGroupDefaultClassesUnitPriceDao;
|
|
|
+import com.ym.mec.biz.dal.dao.VipGroupStudentCoursePriceDao;
|
|
|
+import com.ym.mec.biz.dal.dto.ActivityUserDto;
|
|
|
+import com.ym.mec.biz.dal.dto.BaseMapDto;
|
|
|
+import com.ym.mec.biz.dal.dto.GroupUserDto;
|
|
|
+import com.ym.mec.biz.dal.dto.ReturnFeeDto;
|
|
|
+import com.ym.mec.biz.dal.dto.SimpleUserDto;
|
|
|
+import com.ym.mec.biz.dal.dto.StudentCourseInfoDto;
|
|
|
+import com.ym.mec.biz.dal.dto.StudentRecoverInfoDto;
|
|
|
+import com.ym.mec.biz.dal.dto.StudentVipGroupDetailDto;
|
|
|
+import com.ym.mec.biz.dal.dto.StudentVipGroupShowListDto;
|
|
|
+import com.ym.mec.biz.dal.dto.TeacherBasicDto;
|
|
|
+import com.ym.mec.biz.dal.dto.TeachingRecordBaseInfo;
|
|
|
+import com.ym.mec.biz.dal.dto.VipBuyResultDto;
|
|
|
+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.VipGroupClassGroupMapper;
|
|
|
+import com.ym.mec.biz.dal.dto.VipGroupCourseSchduleRecordDto;
|
|
|
+import com.ym.mec.biz.dal.dto.VipGroupManageDetailDto;
|
|
|
+import com.ym.mec.biz.dal.dto.VipGroupPayInfoDto;
|
|
|
+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.dto.VipGroupSalarySettlementTypeDto;
|
|
|
+import com.ym.mec.biz.dal.dto.VipGroupStudentDto;
|
|
|
+import com.ym.mec.biz.dal.entity.ActivityUserMapper;
|
|
|
+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.entity.CourseScheduleStudentPayment;
|
|
|
+import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
|
|
|
+import com.ym.mec.biz.dal.entity.Employee;
|
|
|
+import com.ym.mec.biz.dal.entity.ImGroup;
|
|
|
+import com.ym.mec.biz.dal.entity.Organization;
|
|
|
+import com.ym.mec.biz.dal.entity.PracticeGroup;
|
|
|
+import com.ym.mec.biz.dal.entity.School;
|
|
|
+import com.ym.mec.biz.dal.entity.Student;
|
|
|
+import com.ym.mec.biz.dal.entity.StudentApplyRefunds;
|
|
|
import com.ym.mec.biz.dal.entity.StudentApplyRefunds.StudentApplyRefundsStatus;
|
|
|
-import com.ym.mec.biz.dal.enums.*;
|
|
|
-import com.ym.mec.biz.dal.page.*;
|
|
|
+import com.ym.mec.biz.dal.entity.StudentPauseInfo;
|
|
|
+import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
|
|
|
+import com.ym.mec.biz.dal.entity.StudentRecoverDto;
|
|
|
+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.SysUserCashAccountLog;
|
|
|
+import com.ym.mec.biz.dal.entity.Teacher;
|
|
|
+import com.ym.mec.biz.dal.entity.TeacherAttendance;
|
|
|
+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.VipGroupDefaultClassesCycle;
|
|
|
+import com.ym.mec.biz.dal.entity.VipGroupDefaultClassesUnitPrice;
|
|
|
+import com.ym.mec.biz.dal.entity.VipGroupStudentCoursePrice;
|
|
|
+import com.ym.mec.biz.dal.enums.ActivityCourseType;
|
|
|
+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.CouponDetailTypeEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.CourseStatusEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.DealStatusEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.GroupType;
|
|
|
+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.ReturnFeeEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.SalarySettlementTypeEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.SysUserRoleEnum;
|
|
|
+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.ActivityUserQueryInfo;
|
|
|
+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.event.source.SendSeoMessageSource;
|
|
|
-import com.ym.mec.biz.service.*;
|
|
|
+import com.ym.mec.biz.service.ActivityUserMapperService;
|
|
|
+import com.ym.mec.biz.service.ClassGroupService;
|
|
|
+import com.ym.mec.biz.service.ContractService;
|
|
|
+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.GroupClassService;
|
|
|
+import com.ym.mec.biz.service.ImGroupMemberService;
|
|
|
+import com.ym.mec.biz.service.ImGroupService;
|
|
|
+import com.ym.mec.biz.service.ImUserFriendService;
|
|
|
+import com.ym.mec.biz.service.PayService;
|
|
|
+import com.ym.mec.biz.service.PracticeGroupService;
|
|
|
+import com.ym.mec.biz.service.StudentPaymentOrderService;
|
|
|
+import com.ym.mec.biz.service.StudentPaymentRouteOrderService;
|
|
|
+import com.ym.mec.biz.service.SysConfigService;
|
|
|
+import com.ym.mec.biz.service.SysCouponCodeService;
|
|
|
+import com.ym.mec.biz.service.SysMessageService;
|
|
|
+import com.ym.mec.biz.service.SysTenantConfigService;
|
|
|
+import com.ym.mec.biz.service.SysUserCashAccountDetailService;
|
|
|
+import com.ym.mec.biz.service.SysUserCashAccountLogService;
|
|
|
+import com.ym.mec.biz.service.SysUserCashAccountService;
|
|
|
+import com.ym.mec.biz.service.TeacherCourseRewardService;
|
|
|
+import com.ym.mec.biz.service.TeacherService;
|
|
|
+import com.ym.mec.biz.service.VipGroupCategoryService;
|
|
|
+import com.ym.mec.biz.service.VipGroupService;
|
|
|
import com.ym.mec.common.constant.CommonConstants;
|
|
|
import com.ym.mec.common.controller.BaseController;
|
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
@@ -26,31 +188,6 @@ import com.ym.mec.util.collection.MapUtil;
|
|
|
import com.ym.mec.util.date.DateConvertor;
|
|
|
import com.ym.mec.util.date.DateUtil;
|
|
|
import com.ym.mec.util.string.MessageFormatter;
|
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
-import org.slf4j.Logger;
|
|
|
-import org.slf4j.LoggerFactory;
|
|
|
-import org.springframework.beans.BeanUtils;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.context.annotation.Lazy;
|
|
|
-import org.springframework.http.HttpStatus;
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
-import org.springframework.transaction.annotation.Isolation;
|
|
|
-import org.springframework.transaction.annotation.Propagation;
|
|
|
-import org.springframework.transaction.annotation.Transactional;
|
|
|
-import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
|
-import org.springframework.util.CollectionUtils;
|
|
|
-
|
|
|
-import java.math.BigDecimal;
|
|
|
-import java.time.LocalDate;
|
|
|
-import java.time.format.DateTimeFormatter;
|
|
|
-import java.util.*;
|
|
|
-import java.util.function.Function;
|
|
|
-import java.util.stream.Collectors;
|
|
|
-
|
|
|
-import static com.ym.mec.biz.dal.enums.GroupType.VIP;
|
|
|
-import static com.ym.mec.biz.dal.enums.SysUserRoleEnum.ORGAN_MANAGER;
|
|
|
-import static java.math.BigDecimal.ROUND_DOWN;
|
|
|
-import static java.math.BigDecimal.ZERO;
|
|
|
|
|
|
@Service
|
|
|
public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> implements VipGroupService {
|
|
@@ -4089,15 +4226,17 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
|
|
|
public void updateVipGroupStatusToFinished() {
|
|
|
+
|
|
|
+ Date now = new Date();
|
|
|
+ //更新至已结束
|
|
|
List<VipGroup> vipGroupList = vipGroupDao.queryRequiredOverList();
|
|
|
if (vipGroupList != null && vipGroupList.size() > 0) {
|
|
|
- Date date = new Date();
|
|
|
for (VipGroup vipGroup : vipGroupList) {
|
|
|
- if (Objects.nonNull(vipGroup.getCoursesExpireDate()) && (vipGroup.getCoursesExpireDate().compareTo(date) > 0 || DateUtil.isSameDay(vipGroup.getCoursesExpireDate(), date))) {
|
|
|
+ if (Objects.nonNull(vipGroup.getCoursesExpireDate()) && (vipGroup.getCoursesExpireDate().compareTo(now) > 0 || DateUtil.isSameDay(vipGroup.getCoursesExpireDate(), now))) {
|
|
|
// continue;
|
|
|
}
|
|
|
vipGroup.setStatus(VipGroupStatusEnum.FINISHED);
|
|
|
- vipGroup.setUpdateTime(date);
|
|
|
+ vipGroup.setUpdateTime(now);
|
|
|
}
|
|
|
vipGroupDao.batchUpdate(vipGroupList);
|
|
|
Set<Long> collect = vipGroupList.stream().filter(v -> VipGroupStatusEnum.FINISHED.equals(v.getStatus())).map(e -> e.getId()).collect(Collectors.toSet());
|
|
@@ -4109,9 +4248,26 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ //关闭没有学生的课程组
|
|
|
+ List<VipGroupClassGroupMapper> vipGroupClassGroupMapperList = classGroupStudentMapperDao.queryWaitCancelVipGroup();
|
|
|
+ if(vipGroupClassGroupMapperList != null && vipGroupClassGroupMapperList.size() > 0){
|
|
|
+ vipGroupList = vipGroupDao.queryByIds(vipGroupClassGroupMapperList.stream().map(t -> t.getId().toString()).collect(Collectors.joining(",")));
|
|
|
+ for(VipGroup vipGroup : vipGroupList){
|
|
|
+ vipGroup.setStatus(VipGroupStatusEnum.CANCEL);
|
|
|
+ vipGroup.setUpdateTime(now);
|
|
|
+ vipGroup.setStopReason("没有学员");
|
|
|
+ }
|
|
|
+ vipGroupDao.batchUpdate(vipGroupList);
|
|
|
+
|
|
|
+ for(VipGroupClassGroupMapper vgcgm : vipGroupClassGroupMapperList){
|
|
|
+ imGroupService.cancel(vgcgm.getClassGroupId().toString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //更新到进行中或报名中
|
|
|
List<VipGroup> normalVipGroupList = vipGroupDao.queryNormalStatusList();
|
|
|
if (!CollectionUtils.isEmpty(normalVipGroupList)) {
|
|
|
- Date now = new Date();
|
|
|
List<VipGroup> needUpdateVipGroups = new ArrayList<>();
|
|
|
for (VipGroup vipGroup : normalVipGroupList) {
|
|
|
try {
|