fix: 无台桌不校验就餐模式

This commit is contained in:
张松 2024-12-17 13:21:50 +08:00
parent 34539e50cf
commit a9903124d5
1 changed files with 21 additions and 7 deletions

View File

@ -159,7 +159,12 @@ public class OrderService {
*/
public ShopEatTypeInfoDTO checkEatModel(Object shopId, String tableId) {
String eatModel = StrUtil.isBlank(tableId) ? ShopInfoEatModelEnum.TAKE_OUT.getValue() : ShopInfoEatModelEnum.DINE_IN.getValue();
return getShopEatTypeInfoDTO(shopId, eatModel, tableId);
return getShopEatTypeInfoDTO(shopId, eatModel, tableId, true);
}
public ShopEatTypeInfoDTO getEatModelUnCheck(Object shopId, String tableId) {
String eatModel = StrUtil.isBlank(tableId) ? ShopInfoEatModelEnum.TAKE_OUT.getValue() : ShopInfoEatModelEnum.DINE_IN.getValue();
return getShopEatTypeInfoDTO(shopId, eatModel, tableId, false);
}
/**
@ -171,7 +176,7 @@ public class OrderService {
*/
public ShopEatTypeInfoDTO checkEatModel(Object shopId, String tableId, String useType) {
String eatModel = OrderUseTypeEnum.TAKEOUT.getValue().equals(useType) ? ShopInfoEatModelEnum.TAKE_OUT.getValue() : ShopInfoEatModelEnum.DINE_IN.getValue();
return getShopEatTypeInfoDTO(shopId, eatModel, tableId);
return getShopEatTypeInfoDTO(shopId, eatModel, tableId, true);
}
/**
@ -182,14 +187,14 @@ public class OrderService {
* @param tableId 台桌id
* @return just餐类型信息
*/
private ShopEatTypeInfoDTO getShopEatTypeInfoDTO(Object shopId, String eatModel, String tableId) {
private ShopEatTypeInfoDTO getShopEatTypeInfoDTO(Object shopId, String eatModel, String tableId, boolean isCheckModel) {
TbShopInfo shopInfo = mpShopInfoMapper.selectOne(new LambdaQueryWrapper<TbShopInfo>()
.eq(TbShopInfo::getId, shopId));
if (shopInfo == null) {
throw new MsgException("店铺信息不存在");
}
if (!shopInfo.getEatModel().contains(eatModel)) {
if (!shopInfo.getEatModel().contains(eatModel) && isCheckModel) {
throw new MsgException("当前店铺未开启此就餐模式");
}
boolean isTakeout = ShopInfoEatModelEnum.TAKE_OUT.getValue().equals(eatModel);
@ -273,8 +278,13 @@ public class OrderService {
if (number == null) {
return Result.fail(CodeEnum.PARAM);
}
ShopEatTypeInfoDTO shopEatTypeInfoDTO = checkEatModel(shopId, tableId);
ShopEatTypeInfoDTO shopEatTypeInfoDTO;
if (StrUtil.isBlank(tableId)) {
shopEatTypeInfoDTO = getEatModelUnCheck(shopId, tableId);
}else {
shopEatTypeInfoDTO = checkEatModel(shopId, tableId);
}
// 台桌点单
boolean isSeatCart = productId != null && TableConstant.CashierCart.ID.equals(productId.toString());
@ -889,8 +899,12 @@ public class OrderService {
if (shopInfo == null) {
throw new MsgException("店铺信息不存在");
}
ShopEatTypeInfoDTO eatTypeInfoDTO = checkEatModel(orderVo.getShopId(), orderVo.getTableId());
ShopEatTypeInfoDTO eatTypeInfoDTO;
if (StrUtil.isBlank(orderVo.getTableId())) {
eatTypeInfoDTO = getEatModelUnCheck(orderVo.getShopId(), orderVo.getTableId());
}else {
eatTypeInfoDTO = checkEatModel(orderVo.getShopId(), orderVo.getTableId());
}
if (ShopInfoEatModelEnum.DINE_IN.getValue().equals(eatTypeInfoDTO.getUseType()) && StrUtil.isBlank(eatTypeInfoDTO.getUseType())) {
throw new MsgException("店内就餐必须选择桌码");