1.代客下单 会员支付,台桌状态问题
This commit is contained in:
parent
ce54b66205
commit
f8a9022064
|
|
@ -153,6 +153,8 @@ public class TbCashierCart implements Serializable {
|
|||
@Column(name = "`uuid`")
|
||||
@ApiModelProperty(value = "uuid")
|
||||
private String uuid;
|
||||
@Column(name = "`sku_name`")
|
||||
private String skuName;
|
||||
|
||||
public void copy(TbCashierCart source){
|
||||
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
|
||||
|
|
|
|||
|
|
@ -1,11 +1,15 @@
|
|||
package cn.ysk.cashier.service;
|
||||
|
||||
import cn.ysk.cashier.dto.ScanPayDTO;
|
||||
import cn.ysk.cashier.dto.shoptable.PayDTO;
|
||||
import cn.ysk.cashier.pojo.order.TbOrderInfo;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
public interface TbPayService {
|
||||
void scanPay(ScanPayDTO scanPayDTO);
|
||||
|
||||
void vipPay(@NotNull Integer shopId, @NotNull Integer orderId);
|
||||
TbOrderInfo vipPay(@NotNull Integer shopId, @NotNull Integer orderId);
|
||||
|
||||
TbOrderInfo cashPay(PayDTO payDTO);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@ package cn.ysk.cashier.service.impl;
|
|||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.ysk.cashier.dto.ScanPayDTO;
|
||||
import cn.ysk.cashier.dto.shoptable.PayDTO;
|
||||
import cn.ysk.cashier.enums.TableStateEnum;
|
||||
import cn.ysk.cashier.exception.BadRequestException;
|
||||
import cn.ysk.cashier.mybatis.entity.TbShopUser;
|
||||
import cn.ysk.cashier.mybatis.entity.TbOrderPayment;
|
||||
|
|
@ -14,6 +16,7 @@ import cn.ysk.cashier.pojo.order.TbCashierCart;
|
|||
import cn.ysk.cashier.pojo.order.TbOrderDetail;
|
||||
import cn.ysk.cashier.pojo.order.TbOrderInfo;
|
||||
import cn.ysk.cashier.pojo.shop.TbMerchantThirdApply;
|
||||
import cn.ysk.cashier.pojo.shop.TbShopTable;
|
||||
import cn.ysk.cashier.repository.shop.TbMerchantThirdApplyRepository;
|
||||
import cn.ysk.cashier.service.TbPayService;
|
||||
import cn.ysk.cashier.utils.RabbitMsgUtils;
|
||||
|
|
@ -50,9 +53,11 @@ public class TbPayServiceImpl implements TbPayService {
|
|||
private final TbOrderDetailMapper orderDetailMapper;
|
||||
private final RabbitTemplate rabbitTemplate;
|
||||
private final RabbitMsgUtils rabbitMsgUtils;
|
||||
private final MpShopTableMapper mpShopTableMapper;
|
||||
|
||||
|
||||
public TbPayServiceImpl(TbOrderInfoMapper orderInfoMapper, TbCashierCartMapper cashierCartMapper, TbMerchantThirdApplyRepository merchantThirdApplyRepository, TbOrderPaymentService orderPaymentService, TbShopPayTypeMapper shopPayTypeMapper, TbOrderDetailMapper orderDetailMapper, RabbitTemplate rabbitTemplate, RabbitMsgUtils rabbitMsgUtils, TbMShopUserMapper shopUserMapper, TbShopUserFlowMapper shopUserFlowMapper) {
|
||||
|
||||
public TbPayServiceImpl(TbOrderInfoMapper orderInfoMapper, TbCashierCartMapper cashierCartMapper, TbMerchantThirdApplyRepository merchantThirdApplyRepository, TbOrderPaymentService orderPaymentService, TbShopPayTypeMapper shopPayTypeMapper, TbOrderDetailMapper orderDetailMapper, RabbitTemplate rabbitTemplate, RabbitMsgUtils rabbitMsgUtils, MpShopTableMapper mpShopTableMapper, TbMShopUserMapper shopUserMapper, TbShopUserFlowMapper shopUserFlowMapper) {
|
||||
this.orderInfoMapper = orderInfoMapper;
|
||||
this.cashierCartMapper = cashierCartMapper;
|
||||
this.merchantThirdApplyRepository = merchantThirdApplyRepository;
|
||||
|
|
@ -61,6 +66,7 @@ public class TbPayServiceImpl implements TbPayService {
|
|||
this.orderDetailMapper = orderDetailMapper;
|
||||
this.rabbitTemplate = rabbitTemplate;
|
||||
this.rabbitMsgUtils = rabbitMsgUtils;
|
||||
this.mpShopTableMapper = mpShopTableMapper;
|
||||
this.shopUserMapper = shopUserMapper;
|
||||
this.shopUserFlowMapper = shopUserFlowMapper;
|
||||
}
|
||||
|
|
@ -291,7 +297,7 @@ public class TbPayServiceImpl implements TbPayService {
|
|||
private final TbShopUserFlowMapper shopUserFlowMapper;
|
||||
|
||||
@Override
|
||||
public void vipPay(@NotNull Integer shopId, @NotNull Integer orderId) {
|
||||
public TbOrderInfo vipPay(@NotNull Integer shopId, @NotNull Integer orderId) {
|
||||
|
||||
TbOrderInfo orderInfo = orderInfoMapper.selectById(orderId);
|
||||
|
||||
|
|
@ -341,20 +347,49 @@ public class TbPayServiceImpl implements TbPayService {
|
|||
orderDetailMapper.update(null, new LambdaUpdateWrapper<TbOrderDetail>()
|
||||
.eq(TbOrderDetail::getOrderId, orderId)
|
||||
.set(TbOrderDetail::getStatus, "closed"));
|
||||
log.info("更新购物车:{}", cartCount);
|
||||
return orderInfo;
|
||||
}
|
||||
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("token", null);
|
||||
jsonObject.put("type", "create");
|
||||
jsonObject.put("orderId", orderId);
|
||||
@Override
|
||||
public TbOrderInfo cashPay(PayDTO payDTO) {
|
||||
TbOrderInfo orderInfo = orderInfoMapper.selectOne(new LambdaUpdateWrapper<TbOrderInfo>()
|
||||
.eq(TbOrderInfo::getId, payDTO.getOrderId())
|
||||
.eq(TbOrderInfo::getShopId, payDTO.getShopId()));
|
||||
|
||||
rabbitMsgUtils.sendOrderCollectMsg(jsonObject);
|
||||
rabbitMsgUtils.printTicket(String.valueOf(orderId));
|
||||
if (orderInfo == null) {
|
||||
throw new BadRequestException("订单信息不存在");
|
||||
}
|
||||
|
||||
// 发送库存记录mq消息
|
||||
JSONObject mqData = new JSONObject();
|
||||
mqData.put("orderId", orderId);
|
||||
mqData.put("type", "pc");
|
||||
rabbitMsgUtils.sendStockMsg(mqData);
|
||||
if (!"unpaid".equals(orderInfo.getStatus())) {
|
||||
throw new BadRequestException("此订单不处于未支付状态");
|
||||
}
|
||||
|
||||
|
||||
mpShopTableMapper.update(null, new LambdaUpdateWrapper<TbShopTable>()
|
||||
.eq(TbShopTable::getQrcode, orderInfo.getTableId())
|
||||
.set(TbShopTable::getStatus, TableStateEnum.PAYING.getState()));
|
||||
// int count = shopInfoRepository.countSelectByShopIdAndPayType(orderInfo.getShopId(), "cash");
|
||||
// if (count < 1) {
|
||||
// return Result.fail(CodeEnum.PAYTYPENOEXIST);
|
||||
// }
|
||||
|
||||
orderInfo.setPayAmount(orderInfo.getOrderAmount());
|
||||
orderInfo.setPayType("cash");
|
||||
orderInfo.setStatus("closed");
|
||||
orderInfo.setPayOrderNo("cash".concat(SnowFlakeUtil.generateOrderNo()));
|
||||
orderInfoMapper.updateById(orderInfo);
|
||||
|
||||
//更新购物车状态
|
||||
TbCashierCart cashierCart = new TbCashierCart();
|
||||
cashierCart.setStatus("final");
|
||||
int cartCount = cashierCartMapper.update(cashierCart, new LambdaUpdateWrapper<TbCashierCart>()
|
||||
.eq(TbCashierCart::getOrderId, payDTO.getOrderId()));
|
||||
|
||||
TbOrderDetail orderDetail = new TbOrderDetail();
|
||||
orderDetail.setStatus("closed");
|
||||
orderDetailMapper.update(orderDetail, new LambdaUpdateWrapper<TbOrderDetail>()
|
||||
.eq(TbOrderDetail::getOrderId, payDTO.getOrderId()));
|
||||
|
||||
return orderInfo;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -349,6 +349,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|||
tbCashierCart.setIsGift(String.valueOf(addCartDTO.isGift()));
|
||||
tbCashierCart.setSalePrice(productSku.getSalePrice());
|
||||
tbCashierCart.setTotalAmount(new BigDecimal(addCartDTO.getNum()).multiply(productSku.getSalePrice()));
|
||||
tbCashierCart.setSkuName(productSku.getSpecSnap());
|
||||
if (!addCartDTO.isPack()) {
|
||||
tbCashierCart.setPackFee(BigDecimal.ZERO);
|
||||
} else {
|
||||
|
|
@ -1022,60 +1023,26 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|||
@Override
|
||||
public Object pay(PayDTO payDTO) {
|
||||
|
||||
TbOrderInfo orderInfo = null;
|
||||
switch (payDTO.getPayType()) {
|
||||
case "vipPay":
|
||||
tbPayServiceImpl.vipPay(payDTO.getShopId(), payDTO.getOrderId());
|
||||
return null;
|
||||
orderInfo = tbPayServiceImpl.vipPay(payDTO.getShopId(), payDTO.getOrderId());
|
||||
break;
|
||||
case "cashPay":
|
||||
orderInfo = tbPayServiceImpl.cashPay(payDTO);
|
||||
}
|
||||
|
||||
TbOrderInfo orderInfo = orderInfoMapper.selectOne(new LambdaUpdateWrapper<TbOrderInfo>()
|
||||
.eq(TbOrderInfo::getId, payDTO.getOrderId())
|
||||
.eq(TbOrderInfo::getShopId, payDTO.getShopId()));
|
||||
|
||||
if (orderInfo == null) {
|
||||
throw new BadRequestException("订单信息不存在");
|
||||
}
|
||||
|
||||
if (!"unpaid".equals(orderInfo.getStatus())) {
|
||||
return new BadRequestException("此订单不处于未支付状态");
|
||||
}
|
||||
|
||||
|
||||
mpShopTableMapper.update(null, new LambdaUpdateWrapper<TbShopTable>()
|
||||
.eq(TbShopTable::getQrcode, orderInfo.getTableId())
|
||||
.set(TbShopTable::getStatus, TableStateEnum.PAYING.getState()));
|
||||
// int count = shopInfoRepository.countSelectByShopIdAndPayType(orderInfo.getShopId(), "cash");
|
||||
// if (count < 1) {
|
||||
// return Result.fail(CodeEnum.PAYTYPENOEXIST);
|
||||
// }
|
||||
|
||||
orderInfo.setPayAmount(orderInfo.getOrderAmount());
|
||||
orderInfo.setPayType("cash");
|
||||
orderInfo.setStatus("closed");
|
||||
orderInfo.setPayOrderNo("cash".concat(SnowFlakeUtil.generateOrderNo()));
|
||||
orderInfoMapper.updateById(orderInfo);
|
||||
|
||||
//更新购物车状态
|
||||
TbCashierCart cashierCart = new TbCashierCart();
|
||||
cashierCart.setStatus("final");
|
||||
int cartCount = cashierCartMapper.update(cashierCart, new LambdaUpdateWrapper<TbCashierCart>()
|
||||
.eq(TbCashierCart::getOrderId, payDTO.getOrderId()));
|
||||
|
||||
TbOrderDetail orderDetail = new TbOrderDetail();
|
||||
orderDetail.setStatus("closed");
|
||||
orderDetailMapper.update(orderDetail, new LambdaUpdateWrapper<TbOrderDetail>()
|
||||
.eq(TbOrderDetail::getOrderId, payDTO.getOrderId()));
|
||||
|
||||
log.info("更新购物车:{}", cartCount);
|
||||
log.info("更新购物车");
|
||||
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("token", null);
|
||||
jsonObject.put("type", "create");
|
||||
jsonObject.put("orderId", payDTO.getOrderId());
|
||||
rabbitTemplate.convertAndSend(RabbitConstants.CART_ORDER_COLLECT_PUT, RabbitConstants.CART_ORDER_COLLECT_ROUTINGKEY_PUT, jsonObject.toJSONString(), new CorrelationData(UUID.randomUUID().toString()));
|
||||
jsonObject.put("orderId", orderInfo.getId());
|
||||
|
||||
// 打印消息
|
||||
rabbitMsgUtils.sendOrderCollectMsg(jsonObject);
|
||||
if (StrUtil.isBlank(orderInfo.getUseType()) || orderInfo.getUseType().equals("afterPay")) {
|
||||
rabbitTemplate.convertAndSend(RabbitConstants.PRINT_MECHINE_COLLECT_PUT, RabbitConstants.PRINT_MECHINE_COLLECT_ROUTINGKEY_PUT, payDTO.getOrderId().toString(), new CorrelationData(UUID.randomUUID().toString()));
|
||||
rabbitMsgUtils.printTicket(String.valueOf(orderInfo.getId()));
|
||||
}
|
||||
|
||||
// 发送库存记录mq消息
|
||||
|
|
|
|||
Loading…
Reference in New Issue