多次退款累加退款金额

This commit is contained in:
2024-10-23 10:52:55 +08:00
parent 47735d6f4b
commit d53762e777
3 changed files with 78 additions and 14 deletions

View File

@@ -18,6 +18,7 @@ import cn.ysk.cashier.mapper.shop.TbShopTableMapper;
import cn.ysk.cashier.mybatis.mapper.*;
import cn.ysk.cashier.mybatis.service.MpCashierCartService;
import cn.ysk.cashier.mybatis.service.MpOrderDetailService;
import cn.ysk.cashier.mybatis.service.MpOrderInfoService;
import cn.ysk.cashier.mybatis.service.MpShopTableService;
import cn.ysk.cashier.pojo.TbShopPayType;
import cn.ysk.cashier.pojo.order.TbCashierCart;
@@ -114,6 +115,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
private final MpMerchantThirdApplyMapper mpMerchantThirdApplyMapper;
private final PayService payService;
private final TbOrderInfoService orderInfoService;
private final MpOrderInfoService mpOrderInfoService;
private TbOrderInfo getCurrentOrder(ShopEatTypeInfoDTO eatTypeInfoDTO) {
// 获取当前台桌最新订单,先付款模式不获取
@@ -2048,20 +2050,29 @@ public class TbShopTableServiceImpl implements TbShopTableService {
mpOrderDetailService.saveBatch(remainOrderDetailList);
}
String orderNo = generateOrderNumber(isOnline ? "OLRO" : "RO");
TbOrderInfo returnOrder = BeanUtil.copyProperties(oldOrderInfo, TbOrderInfo.class);
returnOrder.setId(null);
returnOrder.setOrderNo(orderNo);
returnOrder.setRefundAmount(returnAmount);
returnOrder.setOrderType("return");
returnOrder.setStatus("refunding");
returnOrder.setUpdatedAt(null);
returnOrder.setSystemTime(DateUtil.current());
returnOrder.setCreatedAt(DateUtil.current());
returnOrder.setPayOrderNo(null);
returnOrder.setSource(oldOrderInfo.getId());
returnOrder.setRefundRemark(returnOrderDTO.getNote());
orderInfoMapper.insert(returnOrder);
TbOrderInfo returnOrder = mpOrderInfoService.selectReturnOrderByOrderId(returnOrderDTO.getOrderId());
if (returnOrder == null) {
String orderNo = generateOrderNumber(isOnline ? "OLRO" : "RO");
returnOrder = BeanUtil.copyProperties(oldOrderInfo, TbOrderInfo.class);
returnOrder.setId(null);
returnOrder.setOrderNo(orderNo);
returnOrder.setRefundAmount(returnAmount);
returnOrder.setOrderType("return");
returnOrder.setStatus("refunding");
returnOrder.setUpdatedAt(null);
returnOrder.setSystemTime(DateUtil.current());
returnOrder.setCreatedAt(DateUtil.current());
returnOrder.setPayOrderNo(null);
returnOrder.setSource(oldOrderInfo.getId());
returnOrder.setRefundRemark(returnOrderDTO.getNote());
orderInfoMapper.insert(returnOrder);
}else {
returnOrder.setUpdatedAt(DateUtil.current());
returnOrder.setRefundRemark(returnOrderDTO.getNote());
returnOrder.setRefundAmount(returnOrder.getRefundAmount().add(returnAmount));
orderInfoMapper.updateById(returnOrder);
}
updateStockAndRecord(detailList);
mpOrderDetailService.updateBatchById(detailList);