fixbug 预约限制修改
This commit is contained in:
@@ -114,15 +114,17 @@ public interface VenueLessonTicketMapper {
|
|||||||
* 检验是否满足公益课当天预约限制
|
* 检验是否满足公益课当天预约限制
|
||||||
* @param memberId
|
* @param memberId
|
||||||
* @param venueId
|
* @param venueId
|
||||||
|
* @param checkDate
|
||||||
*/
|
*/
|
||||||
@NoPlatform
|
@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 memberId
|
||||||
* @param venueId
|
* @param venueId
|
||||||
|
* @param checkDate
|
||||||
*/
|
*/
|
||||||
@NoPlatform
|
@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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -204,7 +204,7 @@ public class MemberLessonTicketService extends BaseServiceImpl {
|
|||||||
Integer limitWeek = venue.getLimitWeek() == null ? 2 : venue.getLimitWeek();
|
Integer limitWeek = venue.getLimitWeek() == null ? 2 : venue.getLimitWeek();
|
||||||
// 1、对每天的课设置预约次数的限制
|
// 1、对每天的课设置预约次数的限制
|
||||||
// 2、对每周的预约次数进行次数限制
|
// 2、对每周的预约次数进行次数限制
|
||||||
venueLessonService.checkFreeLimit(member.getId(),venueLesson.getVenueId(),limitDay,limitWeek);
|
venueLessonService.checkFreeLimit(member.getId(),venueLesson.getVenueId(),limitDay,limitWeek,venueLesson.getDate());
|
||||||
}
|
}
|
||||||
|
|
||||||
venueLessonService.decide(venueLesson, lessonTicketOrderDTO.getNum());
|
venueLessonService.decide(venueLesson, lessonTicketOrderDTO.getNum());
|
||||||
|
|||||||
@@ -338,13 +338,18 @@ public class VenueLessonService extends BaseServiceImpl {
|
|||||||
* @param venueId
|
* @param venueId
|
||||||
* @param limitDay
|
* @param limitDay
|
||||||
* @param limitWeek
|
* @param limitWeek
|
||||||
|
* @param date
|
||||||
*/
|
*/
|
||||||
public void checkFreeLimit(Integer memberId, Integer venueId, Integer limitDay, Integer limitWeek) {
|
public void checkFreeLimit(Integer memberId, Integer venueId, Integer limitDay, Integer limitWeek, Date date) {
|
||||||
Integer dayCount = venueLessonTicketMapper.countFreeDayLimit(memberId, venueId);
|
if (date == null){
|
||||||
|
date = new Date();
|
||||||
|
}
|
||||||
|
String checkDate = DateUtilCard.getStrFromDate(date);
|
||||||
|
Integer dayCount = venueLessonTicketMapper.countFreeDayLimit(memberId, venueId, checkDate);
|
||||||
if (dayCount + 1 > limitDay){
|
if (dayCount + 1 > limitDay){
|
||||||
throw new ServiceException("该场馆当天最多可预约" + limitDay + "个公益课");
|
throw new ServiceException("该场馆当天最多可预约" + limitDay + "个公益课");
|
||||||
}
|
}
|
||||||
Integer weekCount = venueLessonTicketMapper.countFreeWeekLimit(memberId, venueId);
|
Integer weekCount = venueLessonTicketMapper.countFreeWeekLimit(memberId, venueId, checkDate);
|
||||||
if (weekCount + 1 > limitWeek){
|
if (weekCount + 1 > limitWeek){
|
||||||
throw new ServiceException("该场馆一周最多可预约" + limitWeek + "个公益课");
|
throw new ServiceException("该场馆一周最多可预约" + limitWeek + "个公益课");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -357,12 +357,12 @@
|
|||||||
AND t.deleted = 0
|
AND t.deleted = 0
|
||||||
AND t.status in (0,1,3)
|
AND t.status in (0,1,3)
|
||||||
AND t.member_id = #{memberId}
|
AND t.member_id = #{memberId}
|
||||||
AND (CASE WHEN DAYNAME(CURDATE())='Sunday'
|
AND (CASE WHEN DAYNAME(#{checkDate})='Sunday'
|
||||||
THEN DATE_SUB(CURDATE(),INTERVAL 6 DAY)
|
THEN DATE_SUB(#{checkDate},INTERVAL 6 DAY)
|
||||||
ELSE DATE_SUB(CURDATE(),INTERVAL DAYOFWEEK(CURDATE())-2 DAY) END) <![CDATA[ <= ]]> DATE(a.date)
|
ELSE DATE_SUB(#{checkDate},INTERVAL DAYOFWEEK(#{checkDate})-2 DAY) END) <![CDATA[ <= ]]> DATE(a.date)
|
||||||
AND (CASE WHEN DAYNAME(CURDATE())='Sunday'
|
AND (CASE WHEN DAYNAME(#{checkDate})='Sunday'
|
||||||
THEN CURDATE()
|
THEN #{checkDate}
|
||||||
ELSE DATE_ADD(CURDATE(),INTERVAL 8-DAYOFWEEK(CURDATE()) DAY) END) <![CDATA[ >= ]]> DATE(a.date);
|
ELSE DATE_ADD(#{checkDate},INTERVAL 8-DAYOFWEEK(#{checkDate}) DAY) END) <![CDATA[ >= ]]> DATE(a.date);
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="countFreeDayLimit" resultType="java.lang.Integer">
|
<select id="countFreeDayLimit" resultType="java.lang.Integer">
|
||||||
@@ -377,7 +377,6 @@
|
|||||||
AND t.deleted = 0
|
AND t.deleted = 0
|
||||||
AND t.status in (0,1,3)
|
AND t.status in (0,1,3)
|
||||||
AND t.member_id = #{memberId}
|
AND t.member_id = #{memberId}
|
||||||
AND CURDATE() <![CDATA[ <= ]]> DATE(a.date)
|
AND a.date = #{checkDate};
|
||||||
AND CURDATE() <![CDATA[ >= ]]> DATE(a.date);
|
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
Reference in New Issue
Block a user