多次退款累加退款金额

This commit is contained in:
SongZhang 2024-10-23 10:52:55 +08:00
parent 5ce67b4014
commit f074f45f86
3 changed files with 78 additions and 14 deletions

View File

@ -0,0 +1,25 @@
package cn.ysk.cashier.mybatis.service;
import cn.ysk.cashier.enums.OrderStatusEnums;
import cn.ysk.cashier.pojo.order.TbOrderDetail;
import cn.ysk.cashier.pojo.order.TbOrderInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* (TbShopPermission)表服务接口
*
* @author makejava
* @since 2024-09-14 17:08:48
*/
public interface MpOrderInfoService extends IService<TbOrderInfo> {
/**
* 根据原始订单查询退款订单
* @param orderId 原始订单id
* @return 对应的退款订单
*/
TbOrderInfo selectReturnOrderByOrderId(Integer orderId);
}

View File

@ -0,0 +1,28 @@
package cn.ysk.cashier.mybatis.service.impl;
import cn.ysk.cashier.mybatis.mapper.TbCashierCartMapper;
import cn.ysk.cashier.mybatis.mapper.TbOrderInfoMapper;
import cn.ysk.cashier.mybatis.service.MpCashierCartService;
import cn.ysk.cashier.mybatis.service.MpOrderInfoService;
import cn.ysk.cashier.pojo.order.TbCashierCart;
import cn.ysk.cashier.pojo.order.TbOrderInfo;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* (TbShopPermission)表服务实现类
*
* @author makejava
* @since 2024-09-14 17:08:49
*/
@Service
public class MpOrderInfoServiceImpl extends ServiceImpl<TbOrderInfoMapper, TbOrderInfo> implements MpOrderInfoService {
@Override
public TbOrderInfo selectReturnOrderByOrderId(Integer orderId) {
return getOne(new LambdaQueryWrapper<TbOrderInfo>()
.eq(TbOrderInfo::getSource, orderId)
.eq(TbOrderInfo::getOrderType, "return"));
}
}

View File

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