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

This commit is contained in:
张松
2024-12-17 13:21:50 +08:00
parent 34539e50cf
commit a9903124d5

View File

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