ソースを参照

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

zouxuan 4 年 前
コミット
1cab3841be

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/EmployeeInfoQueryInfo.java

@@ -2,6 +2,8 @@ package com.ym.mec.biz.dal.page;
 
 import io.swagger.annotations.ApiModelProperty;
 
+import java.util.Date;
+
 import com.ym.mec.biz.dal.enums.JobTypeEnum;
 import com.ym.mec.biz.dal.enums.StaffStatusEnum;
 import com.ym.mec.common.page.QueryInfo;
@@ -25,6 +27,10 @@ public class EmployeeInfoQueryInfo extends QueryInfo {
 
 	@ApiModelProperty(value = "状态", required = false)
 	private StaffStatusEnum status;
+	
+	private Date startDate;
+	
+	private Date endDate;
 
 	public String getUserNameOrIdOrMobile() {
 		return userNameOrIdOrMobile;
@@ -73,4 +79,20 @@ public class EmployeeInfoQueryInfo extends QueryInfo {
 	public void setSourceFrom(String sourceFrom) {
 		this.sourceFrom = sourceFrom;
 	}
+
+	public Date getStartDate() {
+		return startDate;
+	}
+
+	public void setStartDate(Date startDate) {
+		this.startDate = startDate;
+	}
+
+	public Date getEndDate() {
+		return endDate;
+	}
+
+	public void setEndDate(Date endDate) {
+		this.endDate = endDate;
+	}
 }

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupService.java

@@ -177,6 +177,14 @@ public interface ClassGroupService extends BaseService<Integer, ClassGroup> {
      * @return
      */
     ClassGroup addStudent(ClassGroup classGroup, Integer userId, GroupType groupType);
+    
+    /**
+     * 添加学生到指定班级并排课
+     * @param studentId
+     * @param classGroupIdListStr
+     * @return
+     */
+    boolean addStudentToClassGroupAndCourseArranging(Integer studentId, String classGroupIdListStr);
 
     /**
      * 获取未分配合奏的单技班列表

+ 207 - 21
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -1,15 +1,129 @@
 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.PRACTICE;
+import static com.ym.mec.biz.dal.enums.GroupType.VIP;
+
+import java.math.BigDecimal;
+import java.time.Duration;
+import java.time.Instant;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Collections;
+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.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.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.enums.*;
-import com.ym.mec.biz.dal.page.*;
-import com.ym.mec.biz.service.*;
+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.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;
+import com.ym.mec.biz.dal.dto.ClassGroupTeachersDto;
+import com.ym.mec.biz.dal.dto.CourseListDto;
+import com.ym.mec.biz.dal.dto.CourseTimeDto;
+import com.ym.mec.biz.dal.dto.HighClassGroupDto;
+import com.ym.mec.biz.dal.dto.MusicGroupClassGroupDto;
+import com.ym.mec.biz.dal.dto.MusicGroupCourseScheduleDto;
+import com.ym.mec.biz.dal.dto.RemainCourseTypeDurationDto;
+import com.ym.mec.biz.dal.dto.StudentAttendanceViewDto;
+import com.ym.mec.biz.dal.dto.StudentPayInfoDto;
+import com.ym.mec.biz.dal.dto.SuperClassGroupDto;
+import com.ym.mec.biz.dal.dto.TeacherClassGroupDto;
+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.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.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;
+import com.ym.mec.biz.dal.enums.GroupType;
+import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
+import com.ym.mec.biz.dal.enums.SalarySettlementTypeEnum;
+import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
+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.ClassGroupQueryInfo;
+import com.ym.mec.biz.dal.page.CourseScheduleQueryInfo;
+import com.ym.mec.biz.dal.page.EndCourseScheduleQueryInfo;
+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.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;
@@ -26,21 +140,6 @@ import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateConvertor;
 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.time.*;
-import java.time.format.DateTimeFormatter;
-import java.util.*;
-import java.util.stream.Collectors;
-
-import static com.ym.mec.biz.dal.enums.GroupType.*;
-
 @Service
 public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup> implements ClassGroupService {
 
@@ -1032,6 +1131,93 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
+	public boolean addStudentToClassGroupAndCourseArranging(Integer studentId, String classGroupIdListStr) {
+    	
+    	List<ClassGroup> classGroupList = classGroupDao.findClassGroupByIds(classGroupIdListStr);
+    	if(classGroupList == null || classGroupList.size() == 0){
+    		throw new BizException("班级查询失败");
+    	}
+
+        Date date = new Date();
+        List<CourseScheduleStudentPayment> courseScheduleStudentPayments = new ArrayList<CourseScheduleStudentPayment>();
+        
+    	for(ClassGroup classGroup : classGroupList){
+    		//1、增加班级人数
+    		classGroupDao.addStudentNum(classGroup);
+    		
+    		//2、插入关联关系
+    		ClassGroupStudentMapper classGroupStudentMapper = new ClassGroupStudentMapper();
+            classGroupStudentMapper.setMusicGroupId(classGroup.getMusicGroupId());
+            classGroupStudentMapper.setClassGroupId(classGroup.getId());
+            classGroupStudentMapper.setUserId(studentId);
+            classGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL);
+            classGroupStudentMapper.setGroupType(classGroup.getGroupType());
+            classGroupStudentMapper.setCreateTime(date);
+            classGroupStudentMapperDao.insert(classGroupStudentMapper);
+          
+            //3、学生加入级未开始课程
+            List<CourseSchedule> courseScheduleList = courseScheduleService.findNoStartCoursesByClassGroupId(classGroup.getId());
+            for (CourseSchedule courseSchedule : courseScheduleList) {
+                CourseScheduleStudentPayment courseScheduleStudentPayment = new CourseScheduleStudentPayment();
+                courseScheduleStudentPayment.setGroupType(classGroup.getGroupType());
+                courseScheduleStudentPayment.setMusicGroupId(classGroup.getMusicGroupId());
+                courseScheduleStudentPayment.setCourseScheduleId(courseSchedule.getId());
+                courseScheduleStudentPayment.setUserId(studentId);
+                courseScheduleStudentPayment.setClassGroupId(classGroup.getId());
+                courseScheduleStudentPayment.setCreateTime(date);
+                courseScheduleStudentPayment.setUpdateTime(date);
+                courseScheduleStudentPayments.add(courseScheduleStudentPayment);
+            }
+
+            List<Long> courseScheduleIds = courseScheduleList.stream().map(CourseSchedule::getId).collect(Collectors.toList());
+            //4、调整线上基础技能班未上课课酬
+            List<ClassGroupTeacherMapper> classGroupTeachers = classGroupTeacherMapperService.getClassGroupTeachers(classGroup.getId());
+            int hasTeacherSalaryCount = 0;
+            if (courseScheduleIds.size() > 0) {
+                hasTeacherSalaryCount = courseScheduleTeacherSalaryDao.getHasTeacherSalaryCount(courseScheduleIds);
+            }
+            if (classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE) && hasTeacherSalaryCount > 0) {
+                Integer studentNum = classGroup.getStudentNum() + 1;
+                List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
+                courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
+                for (CourseSchedule courseSchedule : courseScheduleList) {
+                    for (ClassGroupTeacherMapper classGroupTeacher : classGroupTeachers) {
+                        List<TeacherDefaultMusicGroupSalary> teacherSalaryList = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(classGroupTeacher.getUserId(), ClassGroupTypeEnum.HIGH_ONLINE.getCode(), null);
+                        Map<CourseSchedule.CourseScheduleType, TeacherDefaultMusicGroupSalary> collect = teacherSalaryList.stream().collect(Collectors.toMap(TeacherDefaultMusicGroupSalary::getCourseScheduleType, teacherDefaultMusicGroupSalary -> teacherDefaultMusicGroupSalary));
+                        TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary = collect.get(courseSchedule.getType());
+                        BigDecimal salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum.toString());
+
+                        CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
+                        courseScheduleTeacherSalary.setCourseScheduleId(courseSchedule.getId());
+                        courseScheduleTeacherSalary.setGroupType(courseSchedule.getGroupType());
+                        courseScheduleTeacherSalary.setMusicGroupId(courseSchedule.getMusicGroupId());
+                        courseScheduleTeacherSalary.setTeacherRole(classGroupTeacher.getTeacherRole());
+                        courseScheduleTeacherSalary.setUserId(classGroupTeacher.getUserId());
+                        courseScheduleTeacherSalary.setExpectSalary(salary);
+                        courseScheduleTeacherSalary.setClassGroupId(classGroup.getId());
+                        courseScheduleTeacherSalary.setCreateTime(date);
+                        courseScheduleTeacherSalary.setUpdateTime(date);
+                        courseScheduleTeacherSalaryList.add(courseScheduleTeacherSalary);
+                    }
+                }
+                courseScheduleTeacherSalaryService.batchInsert(courseScheduleTeacherSalaryList);
+            }
+
+            //5、加入班级群组
+            ImGroupMember[] imGroupMembers = new ImGroupMember[]{new ImGroupMember(studentId.toString())};
+            imFeignService.groupJoin(new ImGroupModel(classGroup.getId().toString(), imGroupMembers, classGroup.getName()));
+
+    	}
+
+        if (courseScheduleStudentPayments.size() != 0) {
+            courseScheduleStudentPaymentService.batchInsert(courseScheduleStudentPayments);
+        }
+
+    	return true;
+	}
+
+	@Override
     public List<ClassGroup> findNoClassSubjects(String musicGroupId) {
         return classGroupDao.findNoClassSubjects(musicGroupId);
     }

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderDetailServiceImpl.java

@@ -238,6 +238,7 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 		Date date = new Date();
 		calender.setUpdateTime(date);
 		calender.setExpectNum(calender.getExpectNum() + 1);
+		musicGroupPaymentCalenderDao.update(calender);
 		//生成详情
 		musicGroupPaymentCalenderDetail = new MusicGroupPaymentCalenderDetail();
 		musicGroupPaymentCalenderDetail.setMusicGroupPaymentCalenderId(calender.getId());
@@ -247,7 +248,6 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 		musicGroupPaymentCalenderDetail.setUpdateTime(date);
 		musicGroupPaymentCalenderDetail.setUserId(userId);
 		musicGroupPaymentCalenderDetailDao.insert(musicGroupPaymentCalenderDetail);
-		musicGroupPaymentCalenderDao.update(calender);
 		
 		List<MusicGroupPaymentStudentCourseDetail> musicGroupPaymentStudentCourseDetailList = new ArrayList<MusicGroupPaymentStudentCourseDetail>();
 		MusicGroupPaymentStudentCourseDetail musicGroupPaymentStudentCourseDetail = null;
@@ -258,6 +258,7 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 			musicGroupPaymentStudentCourseDetail = new MusicGroupPaymentStudentCourseDetail();
 			musicGroupPaymentStudentCourseDetail.setCourseType(courseSettings.getCourseType());
 			musicGroupPaymentStudentCourseDetail.setCreateTime(date);
+			musicGroupPaymentStudentCourseDetail.setMusicGroupPaymentCalenderId(musicGroupPaymentCalenderId);
 			musicGroupPaymentStudentCourseDetail.setMusicGroupPaymentCalenderDetailId(musicGroupPaymentCalenderDetail.getId());
 			musicGroupPaymentStudentCourseDetail.setTotalCourseMinutes(courseSettings.getCourseTotalMinuties());
 			musicGroupPaymentStudentCourseDetail.setUpdateTime(date);

+ 65 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java

@@ -60,6 +60,7 @@ import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
 import com.ym.mec.biz.dal.enums.PaymentStatusEnum;
 import com.ym.mec.biz.dal.page.MusicGroupPaymentCalenderQueryInfo;
+import com.ym.mec.biz.service.ClassGroupService;
 import com.ym.mec.biz.service.MusicGroupPaymentCalenderService;
 import com.ym.mec.biz.service.SysConfigService;
 import com.ym.mec.biz.service.SysMessageService;
@@ -101,6 +102,9 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 	private IdGeneratorService idGeneratorService;
 	
 	@Autowired
+	private ClassGroupService classGroupService;
+	
+	@Autowired
 	private MusicGroupDao musicGroupDao;
 	@Autowired
 	private MusicGroupBuildLogDao musicGroupBuildLogDao;
@@ -264,6 +268,9 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 
 						// 学生加到班级
 						String classGroupIdStr = musicGroupPaymentCalender.getAttribute1();
+						if (StringUtils.isNotBlank(classGroupIdStr)) {
+							classGroupService.addStudentToClassGroupAndCourseArranging(Integer.parseInt(studentId), classGroupIdStr);
+						}
 					}
 				}
 			}
@@ -419,9 +426,66 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 			} else {
 				musicGroupPaymentCalender.setStatus(PaymentCalenderStatusEnum.NO);
 			}
+			
+			//如果是进行中加学生
+			if (musicGroupPaymentCalender.getPaymentType() == PaymentType.ADD_STUDENT) {
+				String studentIdStr = musicGroupPaymentCalender.getStudentIds();
+				if (StringUtils.isNoneBlank(studentIdStr)) {
+					//计算总费用
+					BigDecimal totalPrice = new BigDecimal(0);
+					for(MusicGroupPaymentCalenderCourseSettings musicGroupPaymentCalenderCourseSettings : musicGroupPaymentCalenderCourseSettingsList){
+						totalPrice = totalPrice.add(musicGroupPaymentCalenderCourseSettings.getCourseCurrentPrice());
+					}
+					
+					List<MusicGroupPaymentStudentCourseDetail> musicGroupPaymentStudentCourseDetailList = new ArrayList<MusicGroupPaymentStudentCourseDetail>();
+					MusicGroupPaymentStudentCourseDetail musicGroupPaymentStudentCourseDetail = null;
+					
+					for (String studentId : studentIdStr.split(",")) {
+						// 学生加到calenderDetail
+						MusicGroupPaymentCalenderDetail musicGroupPaymentCalenderDetail = new MusicGroupPaymentCalenderDetail();
+						musicGroupPaymentCalenderDetail.setMusicGroupPaymentCalenderId(musicGroupPaymentCalender.getId());
+						musicGroupPaymentCalenderDetail.setCreateTime(date);
+						musicGroupPaymentCalenderDetail.setExpectAmount(totalPrice);
+						musicGroupPaymentCalenderDetail.setPaymentStatus(PaymentStatus.NON_PAYMENT);
+						musicGroupPaymentCalenderDetail.setUpdateTime(date);
+						musicGroupPaymentCalenderDetail.setUserId(Integer.parseInt(studentId));
+						musicGroupPaymentCalenderDetail.setStartPaymentDate(musicGroupPaymentCalender.getStartPaymentDate());
+						musicGroupPaymentCalenderDetail.setDeadlinePaymentDate(musicGroupPaymentCalender.getDeadlinePaymentDate());
+						
+						musicGroupPaymentCalenderDetailDao.insert(musicGroupPaymentCalenderDetail);
+						
+						// 学生加课程明细
+						for(MusicGroupPaymentCalenderCourseSettings courseSettings : musicGroupPaymentCalenderCourseSettingsList){
+							if (courseSettings.getIsStudentOptional() == true) {
+								continue;
+							}
+							musicGroupPaymentStudentCourseDetail = new MusicGroupPaymentStudentCourseDetail();
+							musicGroupPaymentStudentCourseDetail.setCourseType(courseSettings.getCourseType());
+							musicGroupPaymentStudentCourseDetail.setCreateTime(date);
+							musicGroupPaymentStudentCourseDetail.setMusicGroupPaymentCalenderId(musicGroupPaymentCalender.getId());
+							musicGroupPaymentStudentCourseDetail.setMusicGroupPaymentCalenderDetailId(musicGroupPaymentCalenderDetail.getId());
+							musicGroupPaymentStudentCourseDetail.setTotalCourseMinutes(courseSettings.getCourseTotalMinuties());
+							musicGroupPaymentStudentCourseDetail.setUpdateTime(date);
+							musicGroupPaymentStudentCourseDetail.setUsedCourseMinutes(0);
+							musicGroupPaymentStudentCourseDetail.setUserId(Integer.parseInt(studentId));
+							
+							musicGroupPaymentStudentCourseDetailList.add(musicGroupPaymentStudentCourseDetail);
+						}
+						
+						if(musicGroupPaymentStudentCourseDetailList.size() > 0){
+							musicGroupPaymentStudentCourseDetailDao.batchInsert(musicGroupPaymentStudentCourseDetailList);
+						}
+
+						// 学生加到班级
+						String classGroupIdStr = musicGroupPaymentCalender.getAttribute1();
+						if(StringUtils.isNotBlank(classGroupIdStr)){
+							classGroupService.addStudentToClassGroupAndCourseArranging(Integer.parseInt(studentId), classGroupIdStr);
+						}
+					}
+				}
+			}
 
 			// 如果是报名,需要修改乐团状态
-
 			if (musicGroupPaymentCalender.getPaymentType() == MUSIC_APPLY) {
 				int countAuditReject = musicGroupPaymentCalenderDao.countAuditReject(musicGroupPaymentCalender.getMusicGroupId(),musicGroupPaymentCalender.getId());
 				if(countAuditReject == 0){

+ 5 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -1067,13 +1067,14 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         for (MusicGroupPaymentCalenderCourseSettings courseSetting : courseSettings) {
             if (!orderDetailTypes.contains(courseSetting.getCourseType().getCode())) continue;
             MusicGroupPaymentStudentCourseDetail musicGroupPaymentStudentCourseDetail = new MusicGroupPaymentStudentCourseDetail();
-            musicGroupPaymentStudentCourseDetail.setCourseType(courseSetting.getCourseType());
-            musicGroupPaymentStudentCourseDetail.setCreateTime(nowDate);
+            musicGroupPaymentStudentCourseDetail.setMusicGroupPaymentCalenderId(musicGroupRegCalender.getId());
             musicGroupPaymentStudentCourseDetail.setMusicGroupPaymentCalenderDetailId(musicGroupPaymentCalenderDetail.getId());
+            musicGroupPaymentStudentCourseDetail.setUserId(studentPaymentOrder.getUserId());
+            musicGroupPaymentStudentCourseDetail.setCourseType(courseSetting.getCourseType());
             musicGroupPaymentStudentCourseDetail.setTotalCourseMinutes(courseSetting.getCourseTotalMinuties());
-            musicGroupPaymentStudentCourseDetail.setUpdateTime(nowDate);
             musicGroupPaymentStudentCourseDetail.setUsedCourseMinutes(0);
-            musicGroupPaymentStudentCourseDetail.setUserId(studentPaymentOrder.getUserId());
+            musicGroupPaymentStudentCourseDetail.setCreateTime(nowDate);
+            musicGroupPaymentStudentCourseDetail.setUpdateTime(nowDate);
             musicGroupPaymentStudentCourseDetails.add(musicGroupPaymentStudentCourseDetail);
         }
 

+ 6 - 0
mec-biz/src/main/resources/config/mybatis/EmployeeInfoMapper.xml

@@ -138,6 +138,12 @@
 	        <if test="status != null">
 	            AND ei.status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 	        </if>
+	        <if test="startDate != null">
+	            AND ei.update_time_ &gt;= #{startDate}
+	        </if>
+	        <if test="endDate != null">
+	            AND ei.update_time_ &lt;= #{endDate}
+	        </if>
 		</where>
     </sql>
 

+ 22 - 15
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupPaymentCalenderController.java

@@ -1,12 +1,33 @@
 package com.ym.mec.web.controller;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+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.http.MediaType;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.ui.ModelMap;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao;
 import com.ym.mec.biz.dal.dao.EmployeeDao;
 import com.ym.mec.biz.dal.entity.Employee;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
-import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderCourseSettings;
 import com.ym.mec.biz.dal.entity.StudentRegistration;
 import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
 import com.ym.mec.biz.dal.page.MusicGroupPaymentCalenderQueryInfo;
@@ -14,21 +35,7 @@ import com.ym.mec.biz.service.MusicGroupPaymentCalenderCourseSettingsService;
 import com.ym.mec.biz.service.MusicGroupPaymentCalenderService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
-
 import com.ym.mec.common.exception.BizException;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.MediaType;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.ui.ModelMap;
-import org.springframework.util.CollectionUtils;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.*;
-import java.util.stream.Collectors;
 
 @RequestMapping("musicGroupPaymentCalender")
 @Api(tags = "乐团缴费日历服务")