diff --git a/service/src/main/java/com/sv/mapper/VenueLessonTicketMapper.java b/service/src/main/java/com/sv/mapper/VenueLessonTicketMapper.java
index 1116edf..2c313e8 100644
--- a/service/src/main/java/com/sv/mapper/VenueLessonTicketMapper.java
+++ b/service/src/main/java/com/sv/mapper/VenueLessonTicketMapper.java
@@ -127,4 +127,23 @@ public interface VenueLessonTicketMapper {
*/
@NoPlatform
Integer countFreeWeekLimit(@Param("memberId") Integer memberId, @Param("venueId") Integer venueId, @Param("checkDate") String checkDate);
+
+ /**
+ * 检验是否满足普通课当天预约限制
+ * @param memberId
+ * @param venueId
+ * @param checkDate
+ */
+ @NoPlatform
+ Integer countNormalDayLimit(@Param("memberId") Integer memberId, @Param("venueId") Integer venueId, @Param("checkDate") String checkDate);
+
+ /**
+ * 检验是否满足普通课当周预约限制
+ * @param memberId
+ * @param venueId
+ * @param checkDate
+ */
+ @NoPlatform
+ Integer countNormalWeekLimit(@Param("memberId") Integer memberId, @Param("venueId") Integer venueId, @Param("checkDate") String checkDate);
+
}
diff --git a/service/src/main/java/com/sv/service/api/MemberLessonTicketService.java b/service/src/main/java/com/sv/service/api/MemberLessonTicketService.java
index faf4f57..3251c39 100644
--- a/service/src/main/java/com/sv/service/api/MemberLessonTicketService.java
+++ b/service/src/main/java/com/sv/service/api/MemberLessonTicketService.java
@@ -194,17 +194,22 @@ public class MemberLessonTicketService extends BaseServiceImpl {
// 1判断选择的课程是否可预约
VenueLesson venueLesson = venueLessonService.findById(lessonTicketOrderDTO.getLessonId());
+ Venue venue = venueService.findById(venueLesson.getVenueId());
if (new Integer(1).equals(venueLesson.getType())) {
-
// 课程是公益课 判断用户是否可以购买公益课
memberService.verifyMemberBanType(member);
- // 课程是公益课
- Venue venue = venueService.findById(venueLesson.getVenueId());
Integer limitDay = venue.getLimitDay() == null ? 1 : venue.getLimitDay();
Integer limitWeek = venue.getLimitWeek() == null ? 2 : venue.getLimitWeek();
// 1、对每天的课设置预约次数的限制
// 2、对每周的预约次数进行次数限制
venueLessonService.checkFreeLimit(member.getId(),venueLesson.getVenueId(),limitDay,limitWeek,venueLesson.getDate());
+ }else {
+ // 课程是非公益课
+ Integer limitNoDay = venue.getLimitNoDay() == null ? 1 : venue.getLimitNoDay();
+ Integer limitNoWeek = venue.getLimitNoWeek() == null ? 2 : venue.getLimitNoWeek();
+ // 1、对每天的课设置预约次数的限制
+ // 2、对每周的预约次数进行次数限制
+ venueLessonService.checkNormalLimit(member.getId(),venueLesson.getVenueId(),limitNoDay,limitNoWeek,venueLesson.getDate());
}
venueLessonService.decide(venueLesson, lessonTicketOrderDTO.getNum());
diff --git a/service/src/main/java/com/sv/service/api/VenueLessonService.java b/service/src/main/java/com/sv/service/api/VenueLessonService.java
index 8ad200a..18661d3 100644
--- a/service/src/main/java/com/sv/service/api/VenueLessonService.java
+++ b/service/src/main/java/com/sv/service/api/VenueLessonService.java
@@ -354,5 +354,29 @@ public class VenueLessonService extends BaseServiceImpl {
throw new ServiceException("该场馆一周最多可预约" + limitWeek + "个公益课");
}
}
+
+ /**
+ * 检验是否满足公益课预约限制
+ * @param memberId
+ * @param venueId
+ * @param limitNoDay
+ * @param limitNoWeek
+ * @param date
+ */
+ public void checkNormalLimit(Integer memberId, Integer venueId, Integer limitNoDay, Integer limitNoWeek, Date date) {
+ if (date == null){
+ date = new Date();
+ }
+ String checkDate = DateUtilCard.getStrFromDate(date);
+ Integer dayCount = venueLessonTicketMapper.countNormalDayLimit(memberId, venueId, checkDate);
+ if (dayCount + 1 > limitNoDay){
+ throw new ServiceException("该场馆当天最多可预约" + limitNoDay + "个普通课程");
+ }
+ Integer weekCount = venueLessonTicketMapper.countNormalWeekLimit(memberId, venueId, checkDate);
+ if (weekCount + 1 > limitNoWeek){
+ throw new ServiceException("该场馆一周最多可预约" + limitNoWeek + "个普通课程");
+ }
+ }
+
}
diff --git a/service/src/main/resources/mybatis/mapper/sv/VenueLessonTicketMapper.xml b/service/src/main/resources/mybatis/mapper/sv/VenueLessonTicketMapper.xml
index 33c74f7..dfcc94c 100644
--- a/service/src/main/resources/mybatis/mapper/sv/VenueLessonTicketMapper.xml
+++ b/service/src/main/resources/mybatis/mapper/sv/VenueLessonTicketMapper.xml
@@ -379,4 +379,39 @@
AND t.member_id = #{memberId}
AND a.date = #{checkDate};
+
+
+
+