Jiaqi Xia

feat: 校验订餐日期是否在停餐区间

......@@ -108,7 +108,6 @@ public class MealOrderServiceImpl implements MealOrderService {
}
// 5. 校验停餐记录(学校/班级/学生三个维度最新记录的多段并集区间)
final long nowMs = System.currentTimeMillis();
final var intervals = suspensionService.getSuspensionIntervalsForDiner(
loginInfo.getEnterpriseId(),
dinerById.getClientId(),
......@@ -116,12 +115,16 @@ public class MealOrderServiceImpl implements MealOrderService {
dinerById.getId()
);
if (intervals != null && !intervals.isEmpty()) {
// 校验每个订餐日期是否在停餐时间段内
for (var meal : createMealOrderDTO.getMeals()) {
final long mealDateMs = DateUtil.parseDate(meal.getDate()).getTime();
final boolean inSuspension = intervals.stream()
.anyMatch(i -> nowMs >= i.startAt && nowMs <= i.endAt);
.anyMatch(i -> mealDateMs >= i.startAt && mealDateMs <= i.endAt);
if (inSuspension) {
throw ClientEndExceptions.IncorrectRequestValue.build(ErrorCodeEnum.DINER_MEAL_SUSPENDED);
}
}
}
// 6. 校验菜单信息
final var latestMealMenuRecords = mealOrderServiceRpcClient.queryLatestMealMenuRecordsByClientIds(loginInfo.getEnterpriseId(), Collections.singletonList(dinerById.getClientId()));
......