ソースを参照

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

zouxuan 5 年 前
コミット
4f77e7ed63

+ 8 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -117,7 +117,9 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @author Joburgess
      * @date 2019/10/18
      */
-    List<CourseScheduleDto> getTeacherCourseSchedulesWithDate(@Param("classDate") Date classDate, @Param("teacherId") Long teacherId);
+    List<CourseScheduleDto> getTeacherCourseSchedulesWithDate(@Param("classDate") Date classDate,
+                                                              @Param("teacherId") Long teacherId,
+                                                              @Param("type") String type);
 
     /**
      * @param params:
@@ -168,7 +170,9 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @author Joburgess
      * @date 2019/10/18
      */
-    List<Date> getTeacherCourseScheduleDate(@Param("teacherId") Long teacherId, @Param("month") Date month);
+    List<Date> getTeacherCourseScheduleDate(@Param("teacherId") Long teacherId,
+                                            @Param("month") Date month,
+                                            @Param("type") String type);
 
     /**
      * @param month:
@@ -206,7 +210,8 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @Date: 2019/9/24
      * 获取在指定时间段内存在重复的课程
      */
-    List<CourseSchedule> findOverLapCoursesInDay(@Param("dates") List<Date> dates, @Param("startClassTime") Date startClassTime,
+    List<CourseSchedule> findOverLapCoursesInDay(@Param("dates") List<Date> dates,
+                                                 @Param("startClassTime") Date startClassTime,
                                                  @Param("endClassTime") Date endClassTime);
 
     /**

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

@@ -77,7 +77,7 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
      * @Date: 2019/9/17
      * 根据日期获取当日排课信息
      */
-    List<CourseScheduleDto> getTeacherCourseSchedulesWithDate(Integer userId,Date classDate);
+    List<CourseScheduleDto> getTeacherCourseSchedulesWithDate(Integer userId,Date classDate,String type);
 
     /**
      * @Author: Joburgess
@@ -105,7 +105,7 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
      * @Date: 2019/9/17
      * 获取教师在该月有课的日期
      */
-    List<Date> getCourseScheduleDateByTeacher(Date month);
+    List<Date> getCourseScheduleDateByTeacher(Date month,String type);
 
     /**
      * @Author: Joburgess

+ 26 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -168,12 +168,12 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	}
 
 	@Override
-	public List<Date> getCourseScheduleDateByTeacher(Date month) {
+	public List<Date> getCourseScheduleDateByTeacher(Date month,String type) {
 		SysUser user = sysUserFeignService.queryUserInfo();
 		if(null==user){
 			throw new BizException("获取用户信息失败");
 		}
-		return courseScheduleDao.getTeacherCourseScheduleDate(user.getId().longValue(),month);
+		return courseScheduleDao.getTeacherCourseScheduleDate(user.getId().longValue(),month,type);
 	}
 
 	@Override
@@ -234,11 +234,11 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	}
 
 	@Override
-	public List<CourseScheduleDto> getTeacherCourseSchedulesWithDate(Integer userId,Date classDate) {
+	public List<CourseScheduleDto> getTeacherCourseSchedulesWithDate(Integer userId,Date classDate,String type) {
 		if(Objects.isNull(classDate)){
 			throw new BizException("请选择上课日期!");
 		}
-		List<CourseScheduleDto> teacherCourseSchedulesWithDate = courseScheduleDao.getTeacherCourseSchedulesWithDate(classDate, userId.longValue());
+		List<CourseScheduleDto> teacherCourseSchedulesWithDate = courseScheduleDao.getTeacherCourseSchedulesWithDate(classDate, userId.longValue(),type);
 		teacherCourseSchedulesWithDate.forEach(courseScheduleDto -> {
 			if(Objects.nonNull(courseScheduleDto.getClassGroupId())){
 				String[] studentNums = classGroupStudentMapperDao.findStudentNumByClassGroupId(courseScheduleDto.getClassGroupId().longValue());
@@ -332,6 +332,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			throw new BizException("课程信息错误");
 		}
 
+		Date now=new Date();
+		//明天日期
+		Date tomorrow = DateUtil.addDays1(now, 1);
+
 		//需要生成课程课酬的课程计划
 		List<CourseSchedule> needCreateCourseScheduleTeacherSalaryCourse=new ArrayList<>();
 
@@ -341,8 +345,17 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
 		Map<Long, CourseSchedule> oldCourseSchedules = oldCourseScheduleList.stream().collect(Collectors.toMap(CourseSchedule::getId,courseSchedule -> courseSchedule));
 		newCourseSchedules.forEach(newCourseSchedule -> {
+
+			if(newCourseSchedule.getStartClassTime().before(tomorrow)){
+			    throw new BizException("调整时间必须为明天以后");
+            }
+
 			CourseSchedule oldCourseSchedule = oldCourseSchedules.get(newCourseSchedule.getId());
 
+            if(oldCourseSchedule.getStartClassTime().before(tomorrow)){
+                throw new BizException("不能调整今天及以前的课程");
+            }
+
 			ArrayList<Date> dates = new ArrayList<>();
 			dates.add(newCourseSchedule.getClassDate());
 			List<CourseSchedule> coursesByDates = courseScheduleDao.findOverLapCoursesInDay(dates,newCourseSchedule.getStartClassTime(),newCourseSchedule.getEndClassTime());
@@ -351,7 +364,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 				courseScheduleDao.update(newCourseSchedule);
 			}else{
 				coursesByDates.forEach(courseSchedule -> {
-					if(courseSchedule.getTeacherId().equals(newCourseSchedule.getTeacherId())){
+					if(courseSchedule.getActualTeacherId().equals(newCourseSchedule.getActualTeacherId())){
 						//存在时间重叠,需要前端重新调整
 						throw new BizException("所选教师在当天课程安排上存在重叠!");
 					}
@@ -368,7 +381,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			List<Integer> beReplaceTeacherIds=new ArrayList<>();
 
 			if(oldCourseSchedule.getType()== CourseSchedule.CourseScheduleType.VIP){
-				if(Objects.isNull(oldCourseSchedule.getActualTeacherId())||!oldCourseSchedule.getActualTeacherId().equals(newCourseSchedule.getActualTeacherId())){
+				if(Objects.isNull(oldCourseSchedule.getActualTeacherId())
+						||(!oldCourseSchedule.getActualTeacherId().equals(newCourseSchedule.getActualTeacherId())
+						&&Objects.nonNull(newCourseSchedule.getActualTeacherId()))){
 					VipGroup byCourseSchedule = vipGroupDao.findByCourseSchedule(newCourseSchedule.getId().intValue());
 					TeacherDefaultVipGroupSalary byTeacherAndCategory = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(newCourseSchedule.getActualTeacherId(), byCourseSchedule.getVipGroupCategoryId());
 					List<CourseSchedule> courseSchedules=new ArrayList<>();
@@ -382,7 +397,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 					}
 				}
 			}else{
-				if(Objects.isNull(oldCourseSchedule.getActualTeacherId())||!oldCourseSchedule.getActualTeacherId().equals(newCourseSchedule.getActualTeacherId())){
+				if(Objects.isNull(oldCourseSchedule.getActualTeacherId())
+						||!oldCourseSchedule.getActualTeacherId().equals(newCourseSchedule.getActualTeacherId())){
 					if(Objects.nonNull(oldCourseSchedule.getActualTeacherId())){
 						beReplaceTeacherIds.add(oldCourseSchedule.getActualTeacherId().intValue());
 					}
@@ -427,7 +443,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			}
 		});
 		//生成修改后的教师课酬
-		classGroupTeacherMapperService.createCourseScheduleTeacherSalary(needCreateCourseScheduleTeacherSalaryCourse);
+		if(!CollectionUtils.isEmpty(needCreateCourseScheduleTeacherSalaryCourse)){
+			classGroupTeacherMapperService.createCourseScheduleTeacherSalary(needCreateCourseScheduleTeacherSalaryCourse);
+		}
 	}
 
 	@Transactional(rollbackFor = Exception.class)

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -255,6 +255,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 				vipGroupApplyBaseInfoDto.getOfflineTeacherSalary());
 	}
 
+
+
 	@Override
 	public void vipApplyAudit(Long vipGroupId, AuditStatusEnum auditStatus, String reason) {
 		if(Objects.isNull(vipGroupId)||Objects.isNull(auditStatus)){
@@ -667,6 +669,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		studentPaymentOrder.setUserId(user.getId());
 		String orderNo=StringUtils.join(new String[]{user.getId().toString(),String.valueOf(System.currentTimeMillis())});
 		studentPaymentOrder.setOrderNo(orderNo);
+		studentPaymentOrder.setStatus(DealStatusEnum.ING);
 		studentPaymentOrder.setType(OrderTypeEnum.SMALL_CLASS_TO_BUY);
 		studentPaymentOrder.setExpectAmount(vipGroup.getTotalPrice());
 		studentPaymentOrder.setMusicGroupId(vipGroup.getId().toString());

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -444,7 +444,7 @@
             LEFT JOIN class_group cg ON vgcgm.class_group_id_=cg.id_
             LEFT JOIN course_schedule cs ON cg.id_=cs.class_group_id_
             LEFT JOIN music_group mg ON cg.music_group_id_ = mg.id_
-            LEFT JOIN school s ON mg.school_id_ = s.id_
+            LEFT JOIN school s ON vg.teacher_school_id_ = s.id_
         WHERE
             cs.actual_teacher_id_ = #{teacherId}
             AND cs.status_ != 'OVER'

+ 27 - 3
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -423,6 +423,7 @@
         CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
         CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
         cs.status_,
+        csts.user_id_ actual_teacher_id_,
         csts.teacher_role_,
         s.name_ school_name_,
         if(ta.sign_in_status_ IS NULL,0,1) sign_in_status_,
@@ -438,6 +439,9 @@
         LEFT JOIN teacher_attendance ta ON cs.id_=ta.course_schedule_id_ AND ta.teacher_id_=#{teacherId}
         WHERE
         cs.class_date_ = DATE_FORMAT(#{classDate},'%Y%m%d')
+        <if test="type!=null and type!=''">
+            AND cs.type_=#{type}
+        </if>
         AND csts.user_id_ = #{teacherId}
     </select>
 
@@ -502,9 +506,26 @@
 
     <select id="findOverLapCoursesInDay" resultMap="CourseSchedule">
         SELECT
-        *
+            cs.id_,
+            cs.class_group_id_,
+            cs.status_,
+            cs.subsidy_,
+            cs.class_date_,
+            cs.start_class_time_,
+            cs.end_class_time_,
+            cs.teacher_id_,
+            csts.user_id_ actual_teacher_id_,
+            cs.create_time_,
+            cs.update_time_,
+            cs.teach_mode_,
+            cs.type_,
+            cs.name_,
+            cs.student_num_,
+            cs.leave_student_num_,
+            cs.schoole_id_
         FROM
-        course_schedule cs
+            course_schedule cs
+            LEFT JOIN course_schedule_teacher_salary csts ON cs.id_ = csts.course_schedule_id_
         WHERE
         cs.class_date_ IN
         <foreach collection="dates" item="date" open="(" close=")" separator=",">
@@ -512,7 +533,7 @@
         </foreach>
         AND (
         DATE_FORMAT(cs.start_class_time_,"%H:%i:%s") &gt; DATE_FORMAT(#{endClassTime}, '%H:%i:%s' )
-        OR DATE_FORMAT(cs.end_class_time_,"%H:%i:%s") &lt; DATE_FORMAT( #{endClassTime}, '%H:%i:%s' )
+        OR DATE_FORMAT(cs.end_class_time_,"%H:%i:%s") &lt; DATE_FORMAT( #{startClassTime}, '%H:%i:%s' )
         )=0
     </select>
 
@@ -574,6 +595,9 @@
         <if test="month!=null">
             AND DATE_FORMAT( #{month}, '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
         </if>
+        <if test="type!=null and type!=''">
+            AND cs.type_=#{type}
+        </if>
         GROUP BY
         cs.class_date_
     </select>

+ 6 - 4
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherCourseScheduleController.java

@@ -40,16 +40,18 @@ public class TeacherCourseScheduleController extends BaseController {
 
     @ApiOperation(value = "根据月份获取该月有课的日期")
     @GetMapping("/getCourseScheduleDateByMonth")
-    public Object getCourseScheduleDateByMonth(@ApiParam(value = "月份", required = true) @RequestParam Date month) {
+    public Object getCourseScheduleDateByMonth(@ApiParam(value = "月份", required = true) @RequestParam Date month,
+                                               @ApiParam(value = "课程类型", required = false) String type) {
         if(Objects.isNull(month)){
             return failed(HttpStatus.FORBIDDEN, "请指定日期!");
         }
-        return succeed(scheduleService.getCourseScheduleDateByTeacher(month));
+        return succeed(scheduleService.getCourseScheduleDateByTeacher(month,type));
     }
 
     @ApiOperation(value = "根据日期获取当日排课")
     @GetMapping("/getCourseSchedulesWithDate")
-    public Object getCourseSchedulesWithDate(@ApiParam(value = "日期", required = true) Date date){
+    public Object getCourseSchedulesWithDate(@ApiParam(value = "日期", required = true) Date date,
+                                             @ApiParam(value = "课程类型",required = false) String type){
         if(Objects.isNull(date)){
             return failed("请指定日期!");
         }
@@ -57,7 +59,7 @@ public class TeacherCourseScheduleController extends BaseController {
         if(null==user){
             return failed(HttpStatus.FORBIDDEN, "请登录");
         }
-        List<CourseScheduleDto> teacherCourseSchedulesWithDate = scheduleService.getTeacherCourseSchedulesWithDate(user.getId(),date);
+        List<CourseScheduleDto> teacherCourseSchedulesWithDate = scheduleService.getTeacherCourseSchedulesWithDate(user.getId(),date,type);
         Map<String,Object> result = new HashMap<>();
         result.put("rows",teacherCourseSchedulesWithDate);
         result.put("appealDaysRange",1);

+ 15 - 0
mec-util/src/main/java/com/ym/mec/util/date/DateUtil.java

@@ -943,6 +943,21 @@ public class DateUtil {
 	}
 
 	/**
+	 * @describe 在指定时间上加上指定天数,忽略时分秒
+	 * @author Joburgess
+	 * @date 2019/10/30
+	 * @param date: 日期
+	 * @param days: 天数
+	 * @return java.util.Date
+	 */
+	public static Date addDays1(Date date,int days) {
+		Calendar cal = Calendar.getInstance();
+		cal.setTime(getWeekMondayWithDate(date));
+		cal.add(Calendar.DATE, days);
+		return cal.getTime();
+	}
+
+	/**
 	 * 时间转换为中文格式
 	 * @param date
 	 * @return