feat: 空订单直接删除
This commit is contained in:
@@ -29,5 +29,12 @@ public interface MpCashierCartService extends IService<TbCashierCart> {
|
||||
* @param orderId 订单id
|
||||
*/
|
||||
boolean updateStateByOrderId(TableConstant.OrderInfo.Status status, Integer orderId);
|
||||
|
||||
/**
|
||||
* 获取购物车信息
|
||||
* @return 购物车列表
|
||||
*/
|
||||
List<TbCashierCart> selectCart(String useType, String masterId, Integer orderId, Integer shopId, TableConstant.OrderInfo.Status... statusList);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -31,5 +31,11 @@ public interface MpOrderDetailService extends IService<TbOrderDetail> {
|
||||
* @return 是否成功
|
||||
*/
|
||||
boolean removeByCartIds(List<Integer> cartIds);
|
||||
|
||||
/**
|
||||
* 根据订单id删除详情
|
||||
* @param orderId 订单id
|
||||
*/
|
||||
boolean removeByOrderId(String orderId);
|
||||
}
|
||||
|
||||
|
||||
@@ -657,8 +657,6 @@ public class OrderService {
|
||||
|
||||
List<String> skuIds = new ArrayList<>();
|
||||
skuIds.add(cashierCart.getSkuId());
|
||||
|
||||
|
||||
cashierCartMapper.deleteByPrimaryKey(cartId);
|
||||
|
||||
if (StrUtil.isNotBlank(cashierCart.getOrderId()) && StrUtil.isNotBlank(cashierCart.getTableId())) {
|
||||
@@ -689,10 +687,10 @@ public class OrderService {
|
||||
tbOrderInfoMapper.deleteByPrimaryKey(Integer.valueOf(cashierCart.getOrderId()));
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
checkTakeOutEmptyAndClear(cashierCart);
|
||||
|
||||
if (StrUtil.isNotBlank(cashierCart.getTableId())) {
|
||||
setRedisTableCartInfo(cashierCart.getTableId(), cashierCart.getShopId(), Collections.singletonList(cashierCart), false);
|
||||
}
|
||||
@@ -701,6 +699,20 @@ public class OrderService {
|
||||
return Result.success(CodeEnum.SUCCESS);
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查订单购物车是否为空并删除订单
|
||||
*/
|
||||
private void checkTakeOutEmptyAndClear(TbCashierCart cashierCart) {
|
||||
if (!TableConstant.OrderInfo.UseType.TAKEOUT.equalsVals(cashierCart.getUseType())) {
|
||||
return;
|
||||
}
|
||||
List<TbCashierCart> cashierCarts = mpCashierCartService.selectCart(cashierCart.getUseType(), cashierCart.getMasterId(), Integer.valueOf(cashierCart.getOrderId()), Integer.valueOf(cashierCart.getShopId()));
|
||||
if (cashierCarts.isEmpty() && cashierCart.getOrderId() != null) {
|
||||
mpOrderDetailService.removeByOrderId(cashierCart.getOrderId());
|
||||
mpOrderInfoService.removeById(cashierCart.getOrderId());
|
||||
}
|
||||
}
|
||||
|
||||
private TbOrderInfo getCurrentOrder(ShopEatTypeInfoDTO eatTypeInfoDTO, String tableId, Object shopId) {
|
||||
// 获取当前台桌最新订单,先付款模式不获取
|
||||
if (eatTypeInfoDTO.isDineInBefore() || eatTypeInfoDTO.isTakeout()) {
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
package com.chaozhanggui.system.cashierservice.service.impl;
|
||||
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ArrayUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.chaozhanggui.system.cashierservice.bean.constant.TableConstant;
|
||||
@@ -11,6 +15,7 @@ import com.chaozhanggui.system.cashierservice.service.MpCashierCartService;
|
||||
import com.chaozhanggui.system.cashierservice.service.MpOrderDetailService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -37,5 +42,22 @@ public class MpCashierCartServiceImpl extends ServiceImpl<MPCashierCartMapper, T
|
||||
.ne(TbCashierCart::getStatus, TableConstant.Status.RETURN.getValue())
|
||||
.set(TbCashierCart::getStatus, status.getValue()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TbCashierCart> selectCart(String useType, String masterId, Integer orderId, Integer shopId, TableConstant.OrderInfo.Status... statusList) {
|
||||
LambdaQueryWrapper<TbCashierCart> query = new LambdaQueryWrapper<TbCashierCart>()
|
||||
.eq(TbCashierCart::getShopId, shopId)
|
||||
.eq(TbCashierCart::getUseType, useType)
|
||||
.eq(TbCashierCart::getMasterId, masterId)
|
||||
.gt(TbCashierCart::getCreatedAt, DateUtil.offsetDay(DateUtil.date(), -1).getTime());
|
||||
if (orderId != null) {
|
||||
query.and(q -> q.eq(TbCashierCart::getOrderId, orderId).or().isNull(TbCashierCart::getOrderId));
|
||||
}
|
||||
|
||||
if (statusList.length != 0) {
|
||||
query.in(TbCashierCart::getStatus, Convert.toList(statusList));
|
||||
}
|
||||
return list(query);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -44,5 +44,11 @@ public class MpOrderDetailServiceImpl extends ServiceImpl<MPOrderDetailMapper, T
|
||||
return remove(new LambdaQueryWrapper<TbOrderDetail>()
|
||||
.in(TbOrderDetail::getCartId, cartIds));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean removeByOrderId(String orderId) {
|
||||
return remove(new LambdaQueryWrapper<TbOrderDetail>()
|
||||
.eq(TbOrderDetail::getOrderId, orderId));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user