1.代客下单 挂单不增加masterId

This commit is contained in:
2024-08-21 13:29:30 +08:00
parent a9e5ad8229
commit d981259995

View File

@@ -290,7 +290,8 @@ public class TbShopTableServiceImpl implements TbShopTableService {
if (shopTable == null) {
throw new BadRequestException("桌码不存在,桌码" + tableId);
}
if (!shopTable.getStatus().equals("opening") && !shopTable.getStatus().equals("idle")) {
if (!shopTable.getStatus().equals("using") && !shopTable.getStatus().equals("idle")
&& !shopTable.getStatus().equals("pending")) {
throw new BadRequestException("当前台桌非开台状态");
}
return shopTable;
@@ -663,6 +664,16 @@ public class TbShopTableServiceImpl implements TbShopTableService {
return "DDPL" + date + randomNum;
}
public synchronized void addGlobalCode(String day, String clientType, String shopId) {
String code = redisTemplate.opsForValue().get("SHOP:CODE:" + clientType + ":" + shopId + ":" + day);
if (StrUtil.isBlank(code)) {
redisTemplate.opsForValue().set("SHOP:CODE:" + clientType + ":" + shopId + ":" + day, "1");
}else {
redisTemplate.opsForValue().get("SHOP:CODE:" + clientType + ":" + shopId + ":" + (Integer.parseInt(code) + 1));
}
redisTemplate.opsForValue().setIfAbsent("SHOP:CODE:SET" + clientType + ":" + shopId + ":" + day, "1");
}
public synchronized String generateOrderCode(String day, String clientType, String shopId) {
String code = redisTemplate.opsForValue().get("SHOP:CODE:" + clientType + ":" + shopId + ":" + day);
// 使用顺序递增的计数器生成取餐码
@@ -695,7 +706,8 @@ public class TbShopTableServiceImpl implements TbShopTableService {
TbMerchantAccount merchantAccount = merchantAccountMapper.selectOne(new LambdaQueryWrapper<TbMerchantAccount>().eq(TbMerchantAccount::getAccount, account));
String day = DateUtils.getDay();
JSONObject jsonObject = new JSONObject();
String key = "SHOP:CODE:USER:pc" + ":" + shopId + ":" + day + ":" + shopId;
// 当前台桌码
String key = "SHOP:CODE:USER:pc" + ":" + shopId + ":" + day + ":" + tableId;
String userCode = redisTemplate.opsForValue().get(key);
if (StringUtils.isEmpty(userCode) || "null".equals(userCode) || "#null".equals(userCode)) {
@@ -839,7 +851,9 @@ public class TbShopTableServiceImpl implements TbShopTableService {
cashierCart.setUpdatedAt(System.currentTimeMillis());
cashierCartMapper.updateById(cashierCart);
}
if (isFirst) {
addGlobalCode(day, "pc", String.valueOf(createOrderDTO.getShopId()));
}
// 推送耗材信息
pushConsMsg(orderInfo, cashierCarts);
@@ -1008,18 +1022,11 @@ public class TbShopTableServiceImpl implements TbShopTableService {
orderInfo.setPayType("cash");
orderInfo.setStatus("closed");
orderInfo.setPayOrderNo("cash".concat(SnowFlakeUtil.generateOrderNo()));
String masterId = getMasterId(Integer.valueOf(orderInfo.getShopId()), Long.valueOf(orderInfo.getTableId()), null).toString();
orderInfo.setMasterId(masterId);
orderInfoMapper.updateById(orderInfo);
String day = DateUtils.getDay();
String key = "SHOP:CODE:USER:pc" + ":" + payDTO.getShopId() + ":" + day + ":" + orderInfo.getTableId();
redisTemplate.delete(key);
//更新购物车状态
TbCashierCart cashierCart = new TbCashierCart();
cashierCart.setStatus("final");
cashierCart.setMasterId(masterId);
int cartCount = cashierCartMapper.update(cashierCart, new LambdaUpdateWrapper<TbCashierCart>()
.eq(TbCashierCart::getOrderId, payDTO.getOrderId()));
@@ -1051,6 +1058,9 @@ public class TbShopTableServiceImpl implements TbShopTableService {
.eq(TbShopTable::getQrcode, orderInfo.getTableId())
.set(TbShopTable::getStatus, TableStateEnum.IDLE.getState()));
String day = DateUtils.getDay();
String key = "SHOP:CODE:USER:pc" + ":" + payDTO.getShopId() + ":" + day + ":" + orderInfo.getTableId();
redisTemplate.delete(key);
return null;
}