|
|
|
@ -466,6 +466,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|
|
|
tbCashierCart.setTotalAmount(updateCartDTO.getNum().multiply(tbCashierCart.getSalePrice()));
|
|
|
|
tbCashierCart.setTotalAmount(updateCartDTO.getNum().multiply(tbCashierCart.getSalePrice()));
|
|
|
|
tbCashierCart.setNote(updateCartDTO.getNote());
|
|
|
|
tbCashierCart.setNote(updateCartDTO.getNote());
|
|
|
|
tbCashierCart.setIsPrint(updateCartDTO.getIsPrint());
|
|
|
|
tbCashierCart.setIsPrint(updateCartDTO.getIsPrint());
|
|
|
|
|
|
|
|
tbCashierCart.setIsWaitCall(updateCartDTO.getIsWaitCall());
|
|
|
|
|
|
|
|
|
|
|
|
if (updateCartDTO.getIsPack() != null) {
|
|
|
|
if (updateCartDTO.getIsPack() != null) {
|
|
|
|
if (!updateCartDTO.getIsPack()) {
|
|
|
|
if (!updateCartDTO.getIsPack()) {
|
|
|
|
@ -493,6 +494,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|
|
|
if (tbCashierCart.getOrderId() != null && StrUtil.isNotBlank(updateCartDTO.getNote())) {
|
|
|
|
if (tbCashierCart.getOrderId() != null && StrUtil.isNotBlank(updateCartDTO.getNote())) {
|
|
|
|
orderDetailMapper.update(null, new LambdaUpdateWrapper<TbOrderDetail>()
|
|
|
|
orderDetailMapper.update(null, new LambdaUpdateWrapper<TbOrderDetail>()
|
|
|
|
.eq(TbOrderDetail::getCartId, tbCashierCart.getId())
|
|
|
|
.eq(TbOrderDetail::getCartId, tbCashierCart.getId())
|
|
|
|
|
|
|
|
.set(TbOrderDetail::getIsWaitCall, updateCartDTO.getIsWaitCall())
|
|
|
|
.set(TbOrderDetail::getNote, updateCartDTO.getNote()));
|
|
|
|
.set(TbOrderDetail::getNote, updateCartDTO.getNote()));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -1231,11 +1233,11 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|
|
|
|
|
|
|
|
|
|
|
// 创建订单详情
|
|
|
|
// 创建订单详情
|
|
|
|
OrderPriceDTO detailPriceDTO = createOrderDetailWithCoupon(cartInfoDTO.getCashierCarts(), orderInfo,
|
|
|
|
OrderPriceDTO detailPriceDTO = createOrderDetailWithCoupon(cartInfoDTO.getCashierCarts(), orderInfo,
|
|
|
|
createOrderDTO.getShopId(), true, shopEatTypeInfoDTO);
|
|
|
|
createOrderDTO.getShopId(), true, shopEatTypeInfoDTO, createOrderDTO.getIsWaitCall());
|
|
|
|
|
|
|
|
|
|
|
|
// 是否是第一次创建订单
|
|
|
|
// 是否是第一次创建订单
|
|
|
|
orderInfo = createOrderWithAction(createOrderDTO, detailPriceDTO, shopEatTypeInfoDTO,
|
|
|
|
orderInfo = createOrderWithAction(createOrderDTO, detailPriceDTO, shopEatTypeInfoDTO,
|
|
|
|
orderInfo, cartInfoDTO.getSeatCart(), shopUser, shopTable);
|
|
|
|
orderInfo, cartInfoDTO.getSeatCart(), shopUser, shopTable, createOrderDTO.getIsWaitCall());
|
|
|
|
|
|
|
|
|
|
|
|
// 修改订单详情并打票
|
|
|
|
// 修改订单详情并打票
|
|
|
|
updateDetailAndPrint(orderInfo, detailPriceDTO, shopEatTypeInfoDTO);
|
|
|
|
updateDetailAndPrint(orderInfo, detailPriceDTO, shopEatTypeInfoDTO);
|
|
|
|
@ -1548,7 +1550,8 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|
|
|
* @param updateState
|
|
|
|
* @param updateState
|
|
|
|
* @return
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
private OrderPriceDTO createOrderDetailWithCoupon(List<TbCashierCart> fullCashierCarts, TbOrderInfo orderInfo, Integer shopId, boolean updateState, ShopEatTypeInfoDTO shopEatTypeInfoDTO) {
|
|
|
|
private OrderPriceDTO createOrderDetailWithCoupon(List<TbCashierCart> fullCashierCarts, TbOrderInfo orderInfo, Integer shopId,
|
|
|
|
|
|
|
|
boolean updateState, ShopEatTypeInfoDTO shopEatTypeInfoDTO, Integer isWaitCall) {
|
|
|
|
OrderPriceDTO priceDTO = new OrderPriceDTO();
|
|
|
|
OrderPriceDTO priceDTO = new OrderPriceDTO();
|
|
|
|
|
|
|
|
|
|
|
|
List<Integer> cartIds = fullCashierCarts.stream().map(TbCashierCart::getId).collect(Collectors.toList());
|
|
|
|
List<Integer> cartIds = fullCashierCarts.stream().map(TbCashierCart::getId).collect(Collectors.toList());
|
|
|
|
@ -1566,6 +1569,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
for (TbCashierCart cashierCart : fullCashierCarts) {
|
|
|
|
for (TbCashierCart cashierCart : fullCashierCarts) {
|
|
|
|
|
|
|
|
cashierCart.setIsWaitCall(isWaitCall);
|
|
|
|
if (orderInfo != null && shopEatTypeInfoDTO != null) {
|
|
|
|
if (orderInfo != null && shopEatTypeInfoDTO != null) {
|
|
|
|
cashierCart.setIsMember(StrUtil.isBlank(orderInfo.getMemberId()) ? 0 : shopEatTypeInfoDTO.isMemberPrice() ? 1 : 0);
|
|
|
|
cashierCart.setIsMember(StrUtil.isBlank(orderInfo.getMemberId()) ? 0 : shopEatTypeInfoDTO.isMemberPrice() ? 1 : 0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -1605,6 +1609,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|
|
|
orderDetail.setProductId(Integer.valueOf(cashierCart.getProductId()));
|
|
|
|
orderDetail.setProductId(Integer.valueOf(cashierCart.getProductId()));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
orderDetail.setIsWaitCall(cashierCart.getIsWaitCall());
|
|
|
|
orderDetail.setUserCouponId(cashierCart.getUserCouponId());
|
|
|
|
orderDetail.setUserCouponId(cashierCart.getUserCouponId());
|
|
|
|
orderDetail.setMemberPrice(cashierCart.getMemberPrice());
|
|
|
|
orderDetail.setMemberPrice(cashierCart.getMemberPrice());
|
|
|
|
orderDetail.setNote(cashierCart.getNote());
|
|
|
|
orderDetail.setNote(cashierCart.getNote());
|
|
|
|
@ -1634,7 +1639,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private TbOrderInfo createOrderWithAction(CreateOrderDTO createOrderDTO, OrderPriceDTO priceDTO, ShopEatTypeInfoDTO eatTypeInfoDTO,
|
|
|
|
private TbOrderInfo createOrderWithAction(CreateOrderDTO createOrderDTO, OrderPriceDTO priceDTO, ShopEatTypeInfoDTO eatTypeInfoDTO,
|
|
|
|
TbOrderInfo orderInfo, TbCashierCart seatCart, TbShopUser shopUser, TbShopTable shopTable) {
|
|
|
|
TbOrderInfo orderInfo, TbCashierCart seatCart, TbShopUser shopUser, TbShopTable shopTable, Integer isWaitCall) {
|
|
|
|
int placeNum = getCurrentPlaceNum(eatTypeInfoDTO);
|
|
|
|
int placeNum = getCurrentPlaceNum(eatTypeInfoDTO);
|
|
|
|
boolean isFirst = false;
|
|
|
|
boolean isFirst = false;
|
|
|
|
// 修改订单信息
|
|
|
|
// 修改订单信息
|
|
|
|
@ -1660,6 +1665,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|
|
|
orderInfo.setMerchantId(merchantAccount.getId().toString());
|
|
|
|
orderInfo.setMerchantId(merchantAccount.getId().toString());
|
|
|
|
orderInfo.setIsPostpaid(eatTypeInfoDTO.isDineInAfter() ? 1 : 0);
|
|
|
|
orderInfo.setIsPostpaid(eatTypeInfoDTO.isDineInAfter() ? 1 : 0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
orderInfo.setIsWaitCall(isWaitCall);
|
|
|
|
// 更新取餐号
|
|
|
|
// 更新取餐号
|
|
|
|
orderInfo.setOutNumber(updateOutNumber(String.valueOf(createOrderDTO.getShopId())).toString());
|
|
|
|
orderInfo.setOutNumber(updateOutNumber(String.valueOf(createOrderDTO.getShopId())).toString());
|
|
|
|
orderInfo.setUpdatedAt(System.currentTimeMillis());
|
|
|
|
orderInfo.setUpdatedAt(System.currentTimeMillis());
|
|
|
|
@ -2152,7 +2158,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|
|
|
|
|
|
|
|
|
|
|
// 更新订单信息
|
|
|
|
// 更新订单信息
|
|
|
|
ShopEatTypeInfoDTO shopEatTypeInfoDTO = checkEatModel(orderInfo.getShopId(), orderInfo.getTableId());
|
|
|
|
ShopEatTypeInfoDTO shopEatTypeInfoDTO = checkEatModel(orderInfo.getShopId(), orderInfo.getTableId());
|
|
|
|
OrderPriceDTO priceDTO = createOrderDetailWithCoupon(activateCartInfo, orderInfo, payDTO.getShopId(), false, shopEatTypeInfoDTO);
|
|
|
|
OrderPriceDTO priceDTO = createOrderDetailWithCoupon(activateCartInfo, orderInfo, payDTO.getShopId(), false, shopEatTypeInfoDTO, null);
|
|
|
|
BigDecimal finalAmount = priceDTO.getTotalAmount().setScale(2, RoundingMode.HALF_UP);
|
|
|
|
BigDecimal finalAmount = priceDTO.getTotalAmount().setScale(2, RoundingMode.HALF_UP);
|
|
|
|
|
|
|
|
|
|
|
|
orderInfo.setUpdatedAt(System.currentTimeMillis());
|
|
|
|
orderInfo.setUpdatedAt(System.currentTimeMillis());
|
|
|
|
@ -2288,6 +2294,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
creditBuyerOrderService.save(payDTO.getCreditBuyerId(), Long.valueOf(orderInfo.getId()));
|
|
|
|
creditBuyerOrderService.save(payDTO.getCreditBuyerId(), Long.valueOf(orderInfo.getId()));
|
|
|
|
orderInfo.setPayType(TableConstant.OrderInfo.PayType.CREDIT_BUYER.getValue());
|
|
|
|
orderInfo.setPayType(TableConstant.OrderInfo.PayType.CREDIT_BUYER.getValue());
|
|
|
|
|
|
|
|
orderInfo.setCreditBuyerId(payDTO.getCreditBuyerId());
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case "vipPay":
|
|
|
|
case "vipPay":
|
|
|
|
if (payDTO.getVipUserId() != null) {
|
|
|
|
if (payDTO.getVipUserId() != null) {
|
|
|
|
@ -2794,7 +2801,20 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|
|
|
detailIds.add(item.getId());
|
|
|
|
detailIds.add(item.getId());
|
|
|
|
returnNumMap.put(item.getId().toString(), item.getNum());
|
|
|
|
returnNumMap.put(item.getId().toString(), item.getNum());
|
|
|
|
});
|
|
|
|
});
|
|
|
|
List<TbOrderDetail> detailList = orderDetailMapper.selectList(new LambdaQueryWrapper<TbOrderDetail>()
|
|
|
|
|
|
|
|
|
|
|
|
List<TbOrderDetail> detailList = null;
|
|
|
|
|
|
|
|
if (TableConstant.OrderInfo.PayType.CREDIT_BUYER.equalsVals(oldOrderInfo.getPayType())) {
|
|
|
|
|
|
|
|
detailList = orderDetailMapper.selectList(new LambdaQueryWrapper<TbOrderDetail>()
|
|
|
|
|
|
|
|
.eq(TbOrderDetail::getShopId, returnOrderDTO.getShopId())
|
|
|
|
|
|
|
|
.eq(TbOrderDetail::getStatus, "closed")
|
|
|
|
|
|
|
|
.eq(TbOrderDetail::getOrderId, returnOrderDTO.getOrderId())
|
|
|
|
|
|
|
|
.orderByDesc(TbOrderDetail::getUserCouponId));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (detailList.size() != returnOrderDTO.getOrderDetails().size()) {
|
|
|
|
|
|
|
|
throw new BadRequestException("挂账退款必须全退");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}else {
|
|
|
|
|
|
|
|
detailList = orderDetailMapper.selectList(new LambdaQueryWrapper<TbOrderDetail>()
|
|
|
|
.eq(TbOrderDetail::getShopId, returnOrderDTO.getShopId())
|
|
|
|
.eq(TbOrderDetail::getShopId, returnOrderDTO.getShopId())
|
|
|
|
.eq(TbOrderDetail::getStatus, "closed")
|
|
|
|
.eq(TbOrderDetail::getStatus, "closed")
|
|
|
|
.eq(TbOrderDetail::getOrderId, returnOrderDTO.getOrderId())
|
|
|
|
.eq(TbOrderDetail::getOrderId, returnOrderDTO.getOrderId())
|
|
|
|
@ -2803,6 +2823,8 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|
|
|
if (detailList.size() != returnOrderDTO.getOrderDetails().size()) {
|
|
|
|
if (detailList.size() != returnOrderDTO.getOrderDetails().size()) {
|
|
|
|
throw new BadRequestException("订单明细数量不一致");
|
|
|
|
throw new BadRequestException("订单明细数量不一致");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
HashMap<String, Object> data = new HashMap<>();
|
|
|
|
HashMap<String, Object> data = new HashMap<>();
|
|
|
|
BigDecimal returnAmount = BigDecimal.ZERO;
|
|
|
|
BigDecimal returnAmount = BigDecimal.ZERO;
|
|
|
|
@ -3066,6 +3088,8 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|
|
|
} else if ("cash".equals(payType)) {
|
|
|
|
} else if ("cash".equals(payType)) {
|
|
|
|
mpOrderDetailService.updateStatusByOrderIdAndIds(OrderStatusEnums.REFUNDING, OrderStatusEnums.REFUND,
|
|
|
|
mpOrderDetailService.updateStatusByOrderIdAndIds(OrderStatusEnums.REFUNDING, OrderStatusEnums.REFUND,
|
|
|
|
returnOrderDTO.getOrderId(), returnOrderDTO.getOrderDetails().stream().map(ReturnOrderDTO.OrderDetail::getId).collect(Collectors.toList()));
|
|
|
|
returnOrderDTO.getOrderId(), returnOrderDTO.getOrderDetails().stream().map(ReturnOrderDTO.OrderDetail::getId).collect(Collectors.toList()));
|
|
|
|
|
|
|
|
}else if (TableConstant.OrderInfo.PayType.CREDIT_BUYER.equalsVals(payType)) {
|
|
|
|
|
|
|
|
creditBuyerOrderService.refund(orderInfo.getCreditBuyerId(), Long.valueOf(orderInfo.getId()));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
orderInfo.setStatus(TableConstant.OrderInfo.Status.CLOSED.getValue());
|
|
|
|
orderInfo.setStatus(TableConstant.OrderInfo.Status.CLOSED.getValue());
|
|
|
|
|
|
|
|
|
|
|
|
@ -3080,26 +3104,6 @@ public class TbShopTableServiceImpl implements TbShopTableService {
|
|
|
|
memberPointsService.addPoints(Long.valueOf(orderInfo.getMemberId()), orderInfo.getPointsNum(),
|
|
|
|
memberPointsService.addPoints(Long.valueOf(orderInfo.getMemberId()), orderInfo.getPointsNum(),
|
|
|
|
"用户退款订单积分返还: " + orderInfo.getPointsNum() + "积分", Long.valueOf(orderInfo.getId()));
|
|
|
|
"用户退款订单积分返还: " + orderInfo.getPointsNum() + "积分", Long.valueOf(orderInfo.getId()));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// String couponInfoList = orderInfo.getCouponInfoList();
|
|
|
|
|
|
|
|
// if (StrUtil.isNotBlank(couponInfoList)) {
|
|
|
|
|
|
|
|
// OrderInfoCouponInfoDTO orderInfoCouponInfoDTO = JSONObject.parseObject(couponInfoList, OrderInfoCouponInfoDTO.class);
|
|
|
|
|
|
|
|
// if (orderInfoCouponInfoDTO.getProductCoupon() != null && !orderInfoCouponInfoDTO.getProductCoupon().isEmpty()) {
|
|
|
|
|
|
|
|
// int remainNum = 0;
|
|
|
|
|
|
|
|
// for (OrderInfoUserCouponVo item : orderInfoCouponInfoDTO.getProductCoupon()) {
|
|
|
|
|
|
|
|
// if (item.getFinalUseNum() > item.getReturnNum()) {
|
|
|
|
|
|
|
|
// remainNum = remainNum + (item.getFinalUseNum() - item.getReturnNum());
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// if (remainNum == 0) {
|
|
|
|
|
|
|
|
// returnCoupon(orderInfo, true);
|
|
|
|
|
|
|
|
// // 返还积分
|
|
|
|
|
|
|
|
// memberPointsService.addPoints(Long.valueOf(orderInfo.getMemberId()), orderInfo.getPointsNum(),
|
|
|
|
|
|
|
|
// "用户退款订单积分返还: " + orderInfo.getPointsNum() + "积分", Long.valueOf(orderInfo.getId()));
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
orderInfoMapper.updateById(orderInfo);
|
|
|
|
orderInfoMapper.updateById(orderInfo);
|
|
|
|
// 打印退款小票
|
|
|
|
// 打印退款小票
|
|
|
|
|