Forráskód Böngészése

Merge remote-tracking branch 'origin/master'

Joburgess 5 éve
szülő
commit
22ac7a0b98

+ 1 - 1
mec-auth/mec-auth-server/src/main/resources/config/mybatis/SysUserMapper.xml

@@ -182,7 +182,7 @@
         <result property="portrait" column="avatar_"/>
     </resultMap>
     <select id="getBasic" resultMap="ImUserModel">
-        select CASE WHEN real_name_ IS NULL THEN username_ ELSE real_name_ END username_,id_,avatar_
+        select CASE WHEN real_name_ IS NULL OR real_name_ = '' THEN username_ ELSE real_name_ END username_,id_,avatar_
         from sys_user where id_ = #{userId} LIMIT 1
     </select>
     

+ 31 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java

@@ -1,20 +1,31 @@
 package com.ym.mec.biz.service;
 
-import com.ym.mec.biz.dal.dto.*;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import com.ym.mec.biz.dal.dto.CourseAttendanceDetailHeadInfoDto;
+import com.ym.mec.biz.dal.dto.CoursePostponeDto;
+import com.ym.mec.biz.dal.dto.CourseScheduleDto;
+import com.ym.mec.biz.dal.dto.CourseScheduleEndDto;
+import com.ym.mec.biz.dal.dto.CreateCourseScheduleDto;
+import com.ym.mec.biz.dal.dto.TeacherAttendanceDto;
+import com.ym.mec.biz.dal.dto.VipGroupCourseAdjustInfoDto;
 import com.ym.mec.biz.dal.entity.CourseGenerateDto;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
+import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
 import com.ym.mec.biz.dal.entity.CourseScheduleComplaints;
 import com.ym.mec.biz.dal.enums.AuditStatusEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
+import com.ym.mec.biz.dal.enums.TeachModeEnum;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
-import com.ym.mec.biz.dal.page.*;
+import com.ym.mec.biz.dal.page.CourseScheduleQueryInfo;
+import com.ym.mec.biz.dal.page.EndCourseScheduleQueryInfo;
+import com.ym.mec.biz.dal.page.StudentCourseScheduleRecordQueryInfo;
+import com.ym.mec.biz.dal.page.VipGroupQueryInfo;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
 public interface CourseScheduleService extends BaseService<Long, CourseSchedule> {
 
 	/**
@@ -65,6 +76,20 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
 	 * @return com.ym.mec.biz.dal.enums.YesOrNoEnum
 	 */
 	YesOrNoEnum enableOnlyNormalAttendance(Date startClassTime,Long userId,boolean checkSchool,Integer schoolId);
+	
+	/**
+	 * 给班级加课
+	 * @param classGroupId 班级编号
+	 * @param coursesTimes 增加的课次
+	 * @param startDate 排课开始时间
+	 * @param teachingArrangement 教学安排(周几,几点-几点)
+	 * @param teachMode 教学模式
+	 * @param type 课程类型
+	 * @param schoolId 教学点
+	 * @return
+	 */
+	boolean batchAddCourseSchedule(Integer classGroupId, int coursesTimes, Date startDate, String teachingArrangement, TeachModeEnum teachMode,
+			CourseScheduleType type, Integer schoolId);
 
 	/**
 	 * @Author: Joburgess

+ 149 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -246,6 +246,155 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
     @Override
     @Transactional(rollbackFor = Exception.class)
+	public boolean batchAddCourseSchedule(Integer classGroupId, int coursesTimes, Date startDate, String teachingArrangement, TeachModeEnum teachMode,
+			CourseScheduleType type, Integer schoolId) {
+    	ClassGroup classGroup = classGroupService.get(classGroupId);
+    	if(classGroup == null){
+    		throw new BizException("排课失败,班级信息不存在");
+    	}
+    	List<CourseTimeDto> teachingArrangementList = JsonUtil.parseArray(teachingArrangement, CourseTimeDto.class);
+    	if(teachingArrangementList == null || teachingArrangementList.size() == 0){
+    		throw new BizException("请设置课时安排");
+    	}
+    	
+    	if(teachMode == TeachModeEnum.OFFLINE && schoolId == null){
+    		throw new BizException("线下课请指定教学点");
+    	}
+    	
+    	if(type == null){
+    		throw new BizException("请指定课程类型");
+    	}
+    	
+    	//查询班级学生信息
+    	List<ClassGroupStudentMapper> classGroupStudentMapperList = classGroupStudentMapperDao.findByClassGroup(classGroupId);
+    	
+    	//查询班级老师信息
+    	List<ClassGroupTeacherMapper> classGroupTeacherMapperList = classGroupTeacherMapperService.getClassGroupTeachers(classGroupId);
+    	
+    	//查询老师默认课酬
+		if (type == CourseScheduleType.PRACTICE) {
+			
+		} else if (type == CourseScheduleType.VIP) {
+			
+		} else {
+			
+		}
+    	
+    	Map<Integer,CourseTimeDto> dayOfWeekMap = teachingArrangementList.stream().collect(Collectors.toMap(CourseTimeDto :: getDayOfWeek, ct -> ct));
+    	
+    	Calendar calendar = Calendar.getInstance();
+    	Date date = null;
+    	Date now = new Date();
+    	CourseTimeDto courseTimeDto = null;
+    	List<CourseSchedule> courseScheduleList = new ArrayList<CourseSchedule>();
+    	List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries = new ArrayList<CourseScheduleTeacherSalary>();
+        List<CourseScheduleStudentPayment> courseScheduleStudentPayments = new ArrayList<CourseScheduleStudentPayment>();
+        List<TeacherAttendance> teacherAttendances = new ArrayList<TeacherAttendance>();
+		for (int i = 0; i < coursesTimes; i++) {
+			while (true) {
+				startDate = DateUtil.addDays1(startDate, 1);
+				calendar.setTime(startDate);
+				// 查询当前日期是周几
+				int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
+				if (dayOfWeek == 1) {
+					dayOfWeek = 7;
+				} else {
+					dayOfWeek = dayOfWeek - 1;
+				}
+				courseTimeDto = dayOfWeekMap.get(dayOfWeek);
+				if (courseTimeDto != null) {
+					// 课表
+					CourseSchedule courseSchedule = new CourseSchedule();
+					courseSchedule.setMusicGroupId(classGroup.getMusicGroupId());
+					courseSchedule.setClassGroupId(classGroup.getId());
+					courseSchedule.setStatus(CourseStatusEnum.NOT_START);
+					courseSchedule.setClassDate(startDate);
+
+					String dateYmdStr = DateUtil.dateToString(calendar.getTime(), DateUtil.ISO_EXPANDED_DATE_FORMAT);
+
+					dateYmdStr = dateYmdStr + " " + courseTimeDto.getStartClassTime();
+					Date courseStartTime = DateUtil.stringToDate(dateYmdStr, "yyyy-MM-dd HH:mm");
+					courseSchedule.setStartClassTime(courseStartTime);
+
+					dateYmdStr = dateYmdStr + " " + courseTimeDto.getEndClassTime();
+					Date courseEndTime = DateUtil.stringToDate(dateYmdStr, "yyyy-MM-dd HH:mm");
+					courseSchedule.setEndClassTime(courseEndTime);
+
+					courseSchedule.setTeacherId(-1);
+					courseSchedule.setActualTeacherId(-1);
+					courseSchedule.setCreateTime(now);
+					courseSchedule.setUpdateTime(now);
+					courseSchedule.setTeachMode(teachMode);
+					courseSchedule.setType(type);
+					courseSchedule.setGroupType(classGroup.getGroupType());
+					courseSchedule.setName(classGroup.getName());
+					courseSchedule.setSchoolId(schoolId);
+					courseScheduleList.add(courseSchedule);
+
+					// 课程与老师薪水表
+					CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
+					courseScheduleTeacherSalary.setCourseScheduleId(courseSchedule.getId());
+					courseScheduleTeacherSalary.setGroupType(classGroup.getGroupType());
+					courseScheduleTeacherSalary.setMusicGroupId(classGroup.getMusicGroupId());
+					//courseScheduleTeacherSalary.setTeacherRole(classGroupTeacherMapper.getTeacherRole());
+					//courseScheduleTeacherSalary.setUserId(practiceGroup.getUserId());
+					//courseScheduleTeacherSalary.setExpectSalary(new BigDecimal(practiceCourseSalaryConfig.getParanValue()));
+					courseScheduleTeacherSalary.setCreateTime(now);
+					courseScheduleTeacherSalary.setUpdateTime(now);
+					courseScheduleTeacherSalary.setClassGroupId(classGroup.getId());
+					courseScheduleTeacherSalaries.add(courseScheduleTeacherSalary);
+
+					// 学生缴费记录
+					CourseScheduleStudentPayment courseScheduleStudentPayment = new CourseScheduleStudentPayment();
+					courseScheduleStudentPayment.setGroupType(classGroup.getGroupType());
+					courseScheduleStudentPayment.setMusicGroupId(classGroup.getMusicGroupId());
+					courseScheduleStudentPayment.setCourseScheduleId(courseSchedule.getId());
+					//courseScheduleStudentPayment.setUserId(practiceGroup.getStudentId());
+					courseScheduleStudentPayment.setExpectPrice(BigDecimal.ZERO);
+					courseScheduleStudentPayment.setClassGroupId(classGroup.getId());
+					courseScheduleStudentPayment.setCreateTime(now);
+					courseScheduleStudentPayment.setUpdateTime(now);
+					courseScheduleStudentPayments.add(courseScheduleStudentPayment);
+
+					// 教师签到记录
+					TeacherAttendance teacherAttendance = new TeacherAttendance();
+					teacherAttendance.setMusicGroupId(classGroup.getMusicGroupId());
+					//teacherAttendance.setTeacherId(practiceGroup.getUserId());
+					teacherAttendance.setClassGroupId(classGroup.getId());
+					teacherAttendance.setGroupType(classGroup.getGroupType());
+					teacherAttendance.setCourseScheduleId(courseSchedule.getId());
+					teacherAttendance.setCreateTime(now);
+					teacherAttendances.add(teacherAttendance);
+					
+					break;
+				}
+			}
+		}
+		
+		if(courseScheduleList.size() > 0){
+			courseScheduleDao.batchAddCourseSchedules(courseScheduleList);
+		}
+		
+		if(courseScheduleTeacherSalaries.size() > 0){
+			courseScheduleTeacherSalaryDao.batchInsert(courseScheduleTeacherSalaries);
+		}
+		
+		if(courseScheduleStudentPayments.size() > 0){
+			courseScheduleStudentPaymentDao.batchInsert(courseScheduleStudentPayments);
+		}
+		
+		if(teacherAttendances.size() > 0){
+			teacherAttendanceDao.batchInsert(teacherAttendances);
+		}
+		
+		//更新班级信息
+		classGroupService.updateClassGroupInfo(classGroupId);
+		
+		return true;
+	}
+
+	@Override
+    @Transactional(rollbackFor = Exception.class)
     public void createCourseSchedules(CreateCourseScheduleDto createCourseScheduleDto) {
         List<CourseSchedule> courseSchedules = createCourseScheduleDto.getCourseSchedules();