1.代客下单 增加自动手动清台,新增台桌订单状态信息

This commit is contained in:
SongZhang 2024-09-11 14:49:22 +08:00
parent f2bfc718c3
commit 3ebec6f0c5
3 changed files with 45 additions and 13 deletions

View File

@ -2,7 +2,7 @@ package cn.ysk.cashier.enums;
public enum TableStateEnum {
IDLE("idle"),
CLOSED("closed"), PAYING("paying"), PENDING("pending"), USING("using");
CLOSED("closed"), PAYING("paying"), PENDING("pending"), USING("using"), CLEANING("cleaning");
private String state = "closed";
TableStateEnum(String state) {

View File

@ -23,6 +23,8 @@ import javax.persistence.*;
import javax.validation.constraints.*;
import java.math.BigDecimal;
import java.io.Serializable;
import java.sql.Date;
import java.sql.Timestamp;
/**
* @website https://eladmin.vip
@ -104,6 +106,23 @@ public class TbShopTable implements Serializable {
@ApiModelProperty(value = "二维码")
private String qrcode = "";
@Column(name = "`auto_clear`")
@ApiModelProperty(value = "自动清台")
private Integer autoClear=1;
@Column(name = "`use_time`")
private Date useTime;
@Column(name = "`end_time`")
private Date endTime;
@Column(name = "`product_num`")
private Integer productNum;
@Column(name = "`total_amount`")
private Integer totalAmount;
@Column(name = "`real_amount`")
private Integer realAmount;
public void copy(TbShopTable source){
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
}

View File

@ -154,12 +154,12 @@ public class TbShopTableServiceImpl implements TbShopTableService {
} else if (tbCashierCartMapper.selectCount(new LambdaQueryWrapper<TbCashierCart>()
.eq(TbCashierCart::getShopId, date.getShopId())
.eq(TbCashierCart::getTableId, date.getQrcode())
.eq(TbCashierCart::getTradeDay, cn.ysk.cashier.utils.DateUtils.getDay())
.eq(TbCashierCart::getTradeDay, cn.ysk.cashier.utils.DateUtils.getDay())
.eq(TbCashierCart::getStatus, "create")) < 1 || (orderId != null &&
tbOrderDetailMapper.selectCount(new LambdaQueryWrapper<TbOrderDetail>()
.eq(TbOrderDetail::getShopId, date.getShopId())
.eq(TbOrderDetail::getStatus, "unpaid")
.ge(TbOrderDetail::getCreateTime, DateUtil.beginOfDay(new Date()))
.ge(TbOrderDetail::getCreateTime, DateUtil.beginOfDay(new Date()))
.eq(TbOrderDetail::getOrderId, orderId)) < 1)
) {
date.setStatus("idle");
@ -343,7 +343,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
return 1;
}
TbOrderInfo orderInfo = orderInfoMapper.selectOne(new LambdaQueryWrapper<TbOrderInfo>()
.eq(TbOrderInfo::getUseType, "postPay")
.eq(TbOrderInfo::getUseType, "postPay")
.eq(TbOrderInfo::getId, orderId).select(TbOrderInfo::getPlaceNum));
return orderInfo == null ? 1 : orderInfo.getPlaceNum() + 1;
}
@ -542,7 +542,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
TbOrderDetail tbOrderDetail = orderDetailMapper.selectOne(new LambdaQueryWrapper<TbOrderDetail>()
.eq(TbOrderDetail::getShopId, removeCartDTO.getShopId())
.eq(TbOrderDetail::getPlaceNum, cashierCart.getPlaceNum())
.eq(TbOrderDetail::getPlaceNum, cashierCart.getPlaceNum())
.in(TbOrderDetail::getStatus, "unpaid")
.eq(TbOrderDetail::getOrderId, cashierCart.getOrderId()));
if (tbOrderDetail == null) {
@ -644,7 +644,6 @@ public class TbShopTableServiceImpl implements TbShopTableService {
});
if (!skuIds.isEmpty()) {
List<TbProductSku> skuList = productSkuRepository.findAllById(skuIds);
HashMap<String, TbProductSku> skuMap = new HashMap<>();
@ -1163,8 +1162,6 @@ public class TbShopTableServiceImpl implements TbShopTableService {
// 推送耗材信息
pushConsMsg(orderInfo, cashierCarts);
if (createOrderDTO.isPostPay() && isPrint) {
Long count = orderInfoMapper.selectCount(new LambdaQueryWrapper<TbOrderInfo>()
.eq(TbOrderInfo::getStatus, "unpaid")
@ -1174,15 +1171,20 @@ public class TbShopTableServiceImpl implements TbShopTableService {
}
}
// 设置台桌信息
mpShopTableMapper.update(null, new LambdaUpdateWrapper<TbShopTable>()
.eq(TbShopTable::getShopId, createOrderDTO.getShopId())
.eq(TbShopTable::getQrcode, createOrderDTO.getTableId())
.set(TbShopTable::getUseTime, DateUtil.date())
.set(TbShopTable::getProductNum, cashierCarts.size())
.set(TbShopTable::getTotalAmount, orderInfo.getOrderAmount())
.set(TbShopTable::getRealAmount, orderInfo.getOrderAmount())
.set(TbShopTable::getStatus, TableStateEnum.USING.getState()));
String tableCartKey = RedisConstant.getTableCartKey(createOrderDTO.getTableId(), createOrderDTO.getShopId().toString());
redisTemplate.delete(tableCartKey);
return orderInfo;
}, stringRedisTemplate, RedisConstant.getLockKey(RedisConstant.CREATE_ORDER,createOrderDTO.getShopId(),
}, stringRedisTemplate, RedisConstant.getLockKey(RedisConstant.CREATE_ORDER, createOrderDTO.getShopId(),
createOrderDTO.getTableId(), createOrderDTO.getMasterId(), createOrderDTO.isPostPay()));
}
@ -1419,9 +1421,20 @@ public class TbShopTableServiceImpl implements TbShopTableService {
rabbitTemplate.convertAndSend(RabbitConstants.EXCHANGE_STOCK_RECORD, RabbitConstants.ROUTING_STOCK_RECORD_SALE, mqData.toJSONString(), new CorrelationData(UUID.randomUUID().toString()));
// 修改台桌状态
mpShopTableMapper.update(null, new LambdaUpdateWrapper<TbShopTable>()
.eq(TbShopTable::getQrcode, orderInfo.getTableId())
.set(TbShopTable::getStatus, TableStateEnum.IDLE.getState()));
TbShopTable tbShopTable = mpShopTableMapper.selectOne(new LambdaQueryWrapper<TbShopTable>()
.eq(TbShopTable::getShopId, payDTO.getShopId())
.eq(TbShopTable::getQrcode, orderInfo.getTableId()));
if (tbShopTable.getAutoClear().equals(1)) {
mpShopTableMapper.update(null, new LambdaUpdateWrapper<TbShopTable>()
.eq(TbShopTable::getQrcode, orderInfo.getTableId())
.set(TbShopTable::getEndTime, DateUtil.date())
.set(TbShopTable::getStatus, TableStateEnum.IDLE.getState()));
} else {
mpShopTableMapper.update(null, new LambdaUpdateWrapper<TbShopTable>()
.eq(TbShopTable::getQrcode, orderInfo.getTableId())
.set(TbShopTable::getEndTime, DateUtil.date())
.set(TbShopTable::getStatus, TableStateEnum.CLEANING.getState()));
}
if ("postPay".equals(orderInfo.getUseType())) {
String day = DateUtils.getDay();
@ -1572,7 +1585,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
tbCashierCart.setSkuId("-999");
tbCashierCart.setPackFee(BigDecimal.ZERO);
tbCashierCartMapper.insert(tbCashierCart);
}else {
} else {
tbCashierCart.setTotalAmount(new BigDecimal(choseCountDTO.getNum()).multiply(BigDecimal.ONE));
tbCashierCart.setNumber(choseCountDTO.getNum());
tbCashierCart.setTotalNumber(choseCountDTO.getNum());