|
@@ -1,15 +1,106 @@
|
|
|
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.*;
|
|
|
-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.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.entity.CourseSchedule.CourseScheduleType;
|
|
|
-import com.ym.mec.biz.dal.enums.*;
|
|
|
-import com.ym.mec.biz.dal.page.*;
|
|
|
-import com.ym.mec.biz.service.*;
|
|
|
+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.common.dal.BaseDAO;
|
|
|
import com.ym.mec.common.entity.ImGroupMember;
|
|
|
import com.ym.mec.common.entity.ImGroupModel;
|
|
@@ -20,16 +111,6 @@ 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 {
|
|
@@ -922,7 +1003,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
new BigDecimal(Objects.isNull(surplusClassTimes.get(TeachModeEnum.OFFLINE.getCode()))?"0":surplusClassTimes.get(TeachModeEnum.OFFLINE.getCode()).toString()),
|
|
|
true,
|
|
|
false).get("totalPrice"));
|
|
|
- studentApplyRefunds.setStatus(AuditStatusEnum.ING);
|
|
|
+ studentApplyRefunds.setStatus(StudentApplyRefundsStatus.ING);
|
|
|
String orderNo=StringUtils.join(new String[]{studentId.toString(),String.valueOf(System.currentTimeMillis())});
|
|
|
studentApplyRefunds.setOrderNo(orderNo);
|
|
|
studentApplyRefunds.setOrigPaymentOrderId(studentPaymentOrder.getId());
|
|
@@ -932,7 +1013,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
- public void applyRefundAudit(Long id, AuditStatusEnum status, String remark,BigDecimal amount) {
|
|
|
+ public void applyRefundAudit(Long id, StudentApplyRefundsStatus status, String remark,BigDecimal amount) {
|
|
|
|
|
|
StudentApplyRefunds studentApplyRefunds = studentApplyRefundsDao.get(id);
|
|
|
if (studentApplyRefunds == null) {
|
|
@@ -943,17 +1024,24 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
if (null == studentPaymentOrder) {
|
|
|
throw new BizException("未找到原订单信息!");
|
|
|
}
|
|
|
+
|
|
|
+ if(status ==StudentApplyRefundsStatus.ING){
|
|
|
+ throw new BizException("状态不正确");
|
|
|
+ }
|
|
|
|
|
|
studentApplyRefunds.setStatus(status);
|
|
|
- if (studentApplyRefunds.getStatus() == AuditStatusEnum.PASS) {
|
|
|
+ if (studentApplyRefunds.getStatus() == StudentApplyRefundsStatus.DONE) {
|
|
|
studentApplyRefunds.setActualAmount(amount);
|
|
|
- } else {
|
|
|
+ } else if (studentApplyRefunds.getStatus() == StudentApplyRefundsStatus.WAIT_PAYMENT){
|
|
|
+ studentApplyRefunds.setExpectAmount(amount);
|
|
|
+ }else{
|
|
|
studentApplyRefunds.setActualAmount(new BigDecimal(0));
|
|
|
}
|
|
|
studentApplyRefunds.setRemark(remark);
|
|
|
+ studentApplyRefunds.setUpdateTime(new Date());
|
|
|
studentApplyRefundsDao.update(studentApplyRefunds);
|
|
|
switch (studentApplyRefunds.getStatus()) {
|
|
|
- case PASS:
|
|
|
+ case DONE:
|
|
|
sysUserCashAccountService.updateBalance(studentApplyRefunds.getUserId(), studentApplyRefunds.getActualAmount());
|
|
|
SysUserCashAccount sysUserCashAccount = sysUserCashAccountService.get(studentApplyRefunds.getUserId().intValue());
|
|
|
SysUserCashAccountDetail sysUserCashAccountDetail = new SysUserCashAccountDetail();
|
|
@@ -978,6 +1066,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
case REJECT:
|
|
|
|
|
|
break;
|
|
|
+ case WAIT_PAYMENT:
|
|
|
+
|
|
|
+ break;
|
|
|
default:
|
|
|
throw new BizException("审核状态错误!");
|
|
|
}
|