Bläddra i källkod

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

liujunchi 3 år sedan
förälder
incheckning
5bd80d799b

+ 10 - 5
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseScheduleServiceImpl.java

@@ -898,7 +898,7 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
 
         String orderNo = orderReqInfo.getOrderNo();
         scheduleDto.setType(CourseScheduleEnum.PRACTICE.getCode());
-        scheduleDto.setStatus(CourseGroupEnum.ING.getCode());
+        scheduleDto.setStatus(CourseGroupEnum.NOT_SALE.getCode());
         scheduleDto.setMixStudentNum(1);
         scheduleDto.setStudentId(studentId);
 
@@ -1050,13 +1050,17 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
         Date now = new Date();
         //校验时间是否为未来时刻
         if (classDate.before(now) || startTime.before(now) || endTime.before(now)) {
-            throw new BizException("时间不正确");
+            throw new BizException("排课日期必须大于当前日期");
+        }
+        if (!(DateUtil.dateToString(classDate).equals(DateUtil.dateToString(startTime))) ||
+                !(DateUtil.dateToString(startTime).equals(DateUtil.dateToString(endTime)))) {
+            throw new BizException("排课日期必须为同天");
         }
 
         //校验课程是否存在
         CourseSchedule schedule = baseMapper.selectOne(Wrappers.<CourseSchedule>lambdaQuery()
                 .eq(CourseSchedule::getId, courseId)
-                .eq(CourseSchedule::getLock, 1)
+                .eq(CourseSchedule::getLock, 0)
                 .eq(CourseSchedule::getStatus, CourseScheduleEnum.NOT_START)
                 .eq(CourseSchedule::getType, CourseScheduleEnum.PRACTICE));
         if (ObjectUtil.isEmpty(schedule)) {
@@ -1071,7 +1075,7 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
             throw new BizException("课程无人购买");
         }
 
-        //批量检查老师课时在数据库是否重复
+        //校验老师课程是否冲突
         List<CourseSchedule> scheduleList = this.list(Wrappers.<CourseSchedule>lambdaQuery()
                 .eq(CourseSchedule::getTeacherId, teacherId)
                 .in(CourseSchedule::getStatus, Lists.newArrayList(CourseScheduleEnum.NOT_START.getCode(), CourseScheduleEnum.ING.getCode())));
@@ -1080,7 +1084,8 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
                 throw new BizException("老师排课冲突,课程id:{}", courseSchedule.getId());
             }
         }
-        //批量检查学生课时在数据库是否重复
+
+        //校验学生课程是否冲突
         List<CourseSchedule> studentList = baseMapper.selectSchedule(courseId);
         for (CourseSchedule courseSchedule : studentList) {
             if (inInterSection(startTime, endTime, courseSchedule.getStartTime(), courseSchedule.getEndTime(), true)) {

+ 1 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -479,7 +479,7 @@
     </insert>
 
     <update id="updateLock" parameterType="java.util.List">
-        UPDATE course_schedule SET lock_ = 0 WHERE id_ IN
+        UPDATE course_schedule SET lock_ = 0,status_='ING' WHERE id_ IN
         <foreach collection="list" item="item" open="(" separator="," close=")">
             #{item}
         </foreach>

+ 44 - 0
toolset/utils/src/main/java/com/yonge/toolset/utils/date/DateUtil.java

@@ -1367,6 +1367,50 @@ public class DateUtil {
 		return null;
 	}
 
+	/**
+	 * 获取未来n天(不包含当天)
+	 * @param amount
+	 * @return
+	 */
+	public static List<String> getFutureDays(Integer amount) {
+		Calendar c = Calendar.getInstance();
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+		List<String> lsDate = new ArrayList<>();
+		for (int i = 1; i <= amount; i++) {
+			c.setTime(new Date());
+			c.add(Calendar.DATE, +i);
+			Date d = c.getTime();
+			lsDate.add(sdf.format(d));
+			Collections.sort(lsDate);
+		}
+		return lsDate;
+	}
+
+	/**
+	 * 获取当前星期
+	 * @param sdate 日期
+	 * @return
+	 * @throws Exception
+	 */
+	public static String getWeek(String sdate) {
+		// 再转换为时间
+		DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+		String[] weeks = {"sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"};
+		Date parseDate = null;
+		try {
+			parseDate = dateFormat.parse(sdate);
+		} catch (ParseException e) {
+			e.printStackTrace();
+		}
+		Calendar c = Calendar.getInstance();
+		c.setTime(parseDate);
+		int week_index = c.get(Calendar.DAY_OF_WEEK) - 1;
+		if (week_index < 0) {
+			week_index = 0;
+		}
+		return weeks[week_index];
+	}
+
 	public static void main(String[] args) throws ParseException {
 		// DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
 		DateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");