feat:预定判断是否在时间段内

This commit is contained in:
dzc committed 2025-05-08 17:28:27 +08:00
1 parent f4df20e5f0
commit 80cc00e2ec
2 files changed
+17 -4

No files matched your search

@@ -73,6 +73,7 @@ import org.springframework.validation.annotation.Validated;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -268,9 +269,12 @@ public class HardOrderServiceImpl extends ServiceImpl<HardOrderMapper, HardOrder
// 查询用户
UserInfo userDetail = userService.getInnerByUserId(dto.getUserId()).getData();
if (ObjectUtil.isEmpty(userDetail)) throw new RuntimeException("用户不存在不存在");
// 如果是预约判断是否在预约时间段内
boolean inReserveTime = isInReserveTime(dto.getApptId());
if (!inReserveTime) throw new RuntimeException("不在预约时间段内");
// 判断是否有重复的预约订单
Long reserveCount = isHaveCanteenReserve(dto.getUserId());
if (reserveCount > 100) throw new RuntimeException("您有" + reserveCount + "笔未核销的预约订单,请先核销");
if (reserveCount > 3) throw new RuntimeException("您有" + reserveCount + "笔未核销的预约订单,请先核销");
// 钱包
WalletManageEntity wallet = remoteWalletService.getWallet(dto.getUserId(), dto.getWalletType()).getData();
if (ObjectUtil.isEmpty(wallet)) throw new RuntimeException("用户钱包不存在");
@@ -814,6 +818,18 @@ public class HardOrderServiceImpl extends ServiceImpl<HardOrderMapper, HardOrder
);
}
// 是否在预约时间段内
private boolean isInReserveTime(Long apptId) {
if (ObjectUtil.isEmpty(apptId)) return true;
HardApptEntity apptDetail = hardApptService.getById(apptId);
if (ObjectUtil.isEmpty(apptDetail)) {
throw new RuntimeException("请先配置预约时间段");
}
LocalTime startTime = apptDetail.getStartTime();
LocalTime endTime = apptDetail.getEndTime();
return LocalTime.now().isAfter(startTime) && LocalTime.now().isBefore(endTime);
}
/* ************************************* end 支付相关 end ************************************* */
private HardOrderServiceImpl getSelf() {
@@ -1,11 +1,8 @@
package com.bsd.pjcloud.thirdparty.controller.pay;
import com.bsd.pjcloud.common.core.util.R;
import com.bsd.pjcloud.common.security.annotation.Inner;
import com.bsd.pjcloud.thirdparty.dto.pay.PayGetWalletInfoDto;
import com.bsd.pjcloud.thirdparty.service.ThirdPayApiService;
import com.bsd.pjcloud.thirdparty.service.ThirdPayLogService;
import com.bsd.pjcloud.thirdparty.vo.pay.*;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;