feat:后台退款购物车查询
This commit is contained in:
1 parent
814f7f71fe
commit
87c5a6ee39
3 files changed
+32
-5
No files matched your search
+4
-4
@@ -15,18 +15,18 @@ import java.util.Map;
|
||||
public interface HardAfterSaleCarService extends IService<HardAfterSaleCarEntity> {
|
||||
|
||||
/**
|
||||
* 按订单查询全部售后商品汇总,保留后台历史能力。
|
||||
* 按订单查询申请中及已完成售后商品汇总,取消和拒绝记录不占用退款额度。
|
||||
*
|
||||
* @param orderId 订单 ID
|
||||
* @return 售后商品汇总;订单不存在时返回 {@code null}
|
||||
* @return 有效退款占用商品汇总;订单不存在时返回 {@code null}
|
||||
*/
|
||||
List<HardAfterSaleCarEntity> getByOrderId(Long orderId);
|
||||
|
||||
/**
|
||||
* 按父购物车查询待审核和已完成售后商品汇总,取消及拒绝记录不占用可退数量。
|
||||
* 按父购物车查询全部历史售后商品汇总,保留底层旧查询能力。
|
||||
*
|
||||
* @param carParentId 父购物车 ID
|
||||
* @return 按商品 ID 聚合的有效售后商品汇总
|
||||
* @return 不区分售后状态并按商品 ID 聚合的历史售后商品汇总
|
||||
*/
|
||||
List<HardAfterSaleCarEntity> getByCarPrentId(Long carParentId);
|
||||
|
||||
|
||||
+7
-1
@@ -33,11 +33,17 @@ public class HardAfterSaleCarServiceImpl extends ServiceImpl<HardAfterSaleCarMap
|
||||
/** 订单 Mapper,用于从订单 ID 解析其父购物车 ID。 */
|
||||
private final HardOrderMapper hardOrderMapper;
|
||||
|
||||
/**
|
||||
* 按订单查询仍占用退款额度的商品汇总,取消和拒绝的售后必须释放可退数量。
|
||||
*
|
||||
* @param orderId 原订单 ID
|
||||
* @return 申请中及已完成售后商品汇总;订单不存在时返回 {@code null}
|
||||
*/
|
||||
@Override
|
||||
public List<HardAfterSaleCarEntity> getByOrderId(Long orderId) {
|
||||
HardOrderEntity order = hardOrderMapper.selectById(orderId);
|
||||
if (ObjectUtil.isEmpty(order)) return null;
|
||||
return getByCarPrentId(order.getParentCarId());
|
||||
return getOccupiedByCarParentId(order.getParentCarId());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+21
@@ -2,6 +2,7 @@ package com.bsd.pjcloud.hard.service.impl.order;
|
||||
|
||||
import com.bsd.pjcloud.hard.api.constant.refund.HardSaleStatusEnum;
|
||||
import com.bsd.pjcloud.hard.api.entity.order.HardAfterSaleCarEntity;
|
||||
import com.bsd.pjcloud.hard.api.entity.order.HardOrderEntity;
|
||||
import com.bsd.pjcloud.hard.api.vo.order.HardCarVo;
|
||||
import com.bsd.pjcloud.hard.mapper.order.HardAfterSaleCarMapper;
|
||||
import com.bsd.pjcloud.hard.mapper.order.HardOrderMapper;
|
||||
@@ -37,6 +38,26 @@ class HardAfterSaleCarServiceImplTest {
|
||||
ReflectionTestUtils.setField(service, "baseMapper", afterSaleCarMapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证后台退款购物车只聚合申请中和已完成记录,买家取消及卖家拒绝不会继续占用商品数量。
|
||||
*/
|
||||
@Test
|
||||
void getByOrderIdOnlyReturnsRefundOccupancy() {
|
||||
Long orderId = 99L;
|
||||
Long parentCarId = 100L;
|
||||
HardOrderEntity order = new HardOrderEntity();
|
||||
order.setParentCarId(parentCarId);
|
||||
List<HardAfterSaleCarEntity> occupiedCars = List.of(refundCar(parentCarId, 501L, 1));
|
||||
List<String> occupiedStatuses = List.of(HardSaleStatusEnum.APPLY.getStatus(),
|
||||
HardSaleStatusEnum.COMPLETE.getStatus());
|
||||
when(orderMapper.selectById(orderId)).thenReturn(order);
|
||||
when(afterSaleCarMapper.getOccupiedByCarParentId(parentCarId, occupiedStatuses)).thenReturn(occupiedCars);
|
||||
|
||||
assertEquals(occupiedCars, service.getByOrderId(orderId));
|
||||
|
||||
verify(afterSaleCarMapper).getOccupiedByCarParentId(parentCarId, occupiedStatuses);
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证同一商品存在多行购物车快照时,已退款和申请中份数按行依次分配且原数量保持不变。
|
||||
*/
|
||||
|
||||
Reference in new issue
Block a user