diff --git a/service/src/main/java/com/sv/mapper/VenueLessonTicketMapper.java b/service/src/main/java/com/sv/mapper/VenueLessonTicketMapper.java index fc9f9b6..1116edf 100644 --- a/service/src/main/java/com/sv/mapper/VenueLessonTicketMapper.java +++ b/service/src/main/java/com/sv/mapper/VenueLessonTicketMapper.java @@ -114,15 +114,17 @@ public interface VenueLessonTicketMapper { * 检验是否满足公益课当天预约限制 * @param memberId * @param venueId + * @param checkDate */ @NoPlatform - Integer countFreeDayLimit(@Param("memberId") Integer memberId,@Param("venueId") Integer venueId); + Integer countFreeDayLimit(@Param("memberId") Integer memberId, @Param("venueId") Integer venueId, @Param("checkDate") String checkDate); /** * 检验是否满足公益课当周预约限制 * @param memberId * @param venueId + * @param checkDate */ @NoPlatform - Integer countFreeWeekLimit(@Param("memberId") Integer memberId,@Param("venueId") Integer venueId); + Integer countFreeWeekLimit(@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 e159e21..faf4f57 100644 --- a/service/src/main/java/com/sv/service/api/MemberLessonTicketService.java +++ b/service/src/main/java/com/sv/service/api/MemberLessonTicketService.java @@ -204,7 +204,7 @@ public class MemberLessonTicketService extends BaseServiceImpl { Integer limitWeek = venue.getLimitWeek() == null ? 2 : venue.getLimitWeek(); // 1、对每天的课设置预约次数的限制 // 2、对每周的预约次数进行次数限制 - venueLessonService.checkFreeLimit(member.getId(),venueLesson.getVenueId(),limitDay,limitWeek); + venueLessonService.checkFreeLimit(member.getId(),venueLesson.getVenueId(),limitDay,limitWeek,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 64f833b..8ad200a 100644 --- a/service/src/main/java/com/sv/service/api/VenueLessonService.java +++ b/service/src/main/java/com/sv/service/api/VenueLessonService.java @@ -338,13 +338,18 @@ public class VenueLessonService extends BaseServiceImpl { * @param venueId * @param limitDay * @param limitWeek + * @param date */ - public void checkFreeLimit(Integer memberId, Integer venueId, Integer limitDay, Integer limitWeek) { - Integer dayCount = venueLessonTicketMapper.countFreeDayLimit(memberId, venueId); + public void checkFreeLimit(Integer memberId, Integer venueId, Integer limitDay, Integer limitWeek, Date date) { + if (date == null){ + date = new Date(); + } + String checkDate = DateUtilCard.getStrFromDate(date); + Integer dayCount = venueLessonTicketMapper.countFreeDayLimit(memberId, venueId, checkDate); if (dayCount + 1 > limitDay){ throw new ServiceException("该场馆当天最多可预约" + limitDay + "个公益课"); } - Integer weekCount = venueLessonTicketMapper.countFreeWeekLimit(memberId, venueId); + Integer weekCount = venueLessonTicketMapper.countFreeWeekLimit(memberId, venueId, checkDate); if (weekCount + 1 > limitWeek){ throw new ServiceException("该场馆一周最多可预约" + limitWeek + "个公益课"); } diff --git a/service/src/main/resources/mybatis/mapper/sv/VenueLessonTicketMapper.xml b/service/src/main/resources/mybatis/mapper/sv/VenueLessonTicketMapper.xml index 1366406..33c74f7 100644 --- a/service/src/main/resources/mybatis/mapper/sv/VenueLessonTicketMapper.xml +++ b/service/src/main/resources/mybatis/mapper/sv/VenueLessonTicketMapper.xml @@ -357,12 +357,12 @@ AND t.deleted = 0 AND t.status in (0,1,3) AND t.member_id = #{memberId} - AND (CASE WHEN DAYNAME(CURDATE())='Sunday' - THEN DATE_SUB(CURDATE(),INTERVAL 6 DAY) - ELSE DATE_SUB(CURDATE(),INTERVAL DAYOFWEEK(CURDATE())-2 DAY) END) DATE(a.date) - AND (CASE WHEN DAYNAME(CURDATE())='Sunday' - THEN CURDATE() - ELSE DATE_ADD(CURDATE(),INTERVAL 8-DAYOFWEEK(CURDATE()) DAY) END) = ]]> DATE(a.date); + AND (CASE WHEN DAYNAME(#{checkDate})='Sunday' + THEN DATE_SUB(#{checkDate},INTERVAL 6 DAY) + ELSE DATE_SUB(#{checkDate},INTERVAL DAYOFWEEK(#{checkDate})-2 DAY) END) DATE(a.date) + AND (CASE WHEN DAYNAME(#{checkDate})='Sunday' + THEN #{checkDate} + ELSE DATE_ADD(#{checkDate},INTERVAL 8-DAYOFWEEK(#{checkDate}) DAY) END) = ]]> DATE(a.date);