| 
					
				 | 
			
			
				@@ -21,11 +21,13 @@ import cn.newfeifan.mall.module.trade.dal.dataobject.order.TradeOrderItemDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.newfeifan.mall.module.trade.dal.mysql.order.TradeOrderItemMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.newfeifan.mall.module.trade.dal.mysql.order.TradeOrderMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.newfeifan.mall.module.trade.dal.redis.RedisKeyConstants; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import cn.newfeifan.mall.module.trade.enums.BacklogConstants; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.newfeifan.mall.module.trade.enums.order.TradeOrderRefundStatusEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.newfeifan.mall.module.trade.enums.order.TradeOrderStatusEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.newfeifan.mall.module.trade.framework.delivery.core.client.ExpressClientFactory; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.newfeifan.mall.module.trade.framework.delivery.core.client.dto.ExpressTrackQueryReqDTO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.newfeifan.mall.module.trade.framework.delivery.core.client.dto.ExpressTrackRespDTO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import cn.newfeifan.mall.module.trade.service.aftersale.AfterSaleService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.newfeifan.mall.module.trade.service.delivery.DeliveryExpressService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import lombok.extern.slf4j.Slf4j; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -69,6 +71,9 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Resource 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private AdminUserService userService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Resource 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private AfterSaleService afterSaleService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // =================== Order =================== 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -80,8 +85,7 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public TradeOrderDO getOrder(Long userId, Long id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         TradeOrderDO order = tradeOrderMapper.selectById(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (order != null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                && ObjectUtil.notEqual(order.getUserId(), userId)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (order != null && ObjectUtil.notEqual(order.getUserId(), userId)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return order; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -175,7 +179,7 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public Long getOrderCount(Integer status, TradeOrderPageReqVO reqVO) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         UserShopDetailsVO userShopDetails = userService.getUserShopDetails(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return tradeOrderMapper.selectCountByStatus(status, userShopDetails.getShopId(), userShopDetails.getMerId(),reqVO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return tradeOrderMapper.selectCountByStatus(status, userShopDetails.getShopId(), userShopDetails.getMerId(), reqVO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -213,10 +217,19 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public TradeOrderDO getOrderById(Long orderId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return tradeOrderMapper.selectOne(new LambdaQueryWrapper<TradeOrderDO>() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .eq(TradeOrderDO::getId, orderId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .isNull(TradeOrderDO::getReceivingTime) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return tradeOrderMapper.selectOne(new LambdaQueryWrapper<TradeOrderDO>().eq(TradeOrderDO::getId, orderId).isNull(TradeOrderDO::getReceivingTime)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Map<String, Long> getBacklog() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        UserShopDetailsVO userShopDetails = userService.getUserShopDetails(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Long backlogShipmentsCount = tradeOrderMapper.selectCountByStatus(TradeOrderStatusEnum.UNDELIVERED.getStatus(), userShopDetails.getShopId(), userShopDetails.getMerId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Long backlogAfterSaleCount = afterSaleService.selectCountByStatus(userShopDetails.getShopId(), userShopDetails.getMerId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<String,Long> backMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        backMap.put(BacklogConstants.BACKLOG_SHIPMENTS,backlogShipmentsCount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        backMap.put(BacklogConstants.BACKLOG_AFTER_SALE,backlogAfterSaleCount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return backMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -282,12 +295,9 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @param receiverMobile 收、寄件人的电话号码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @return 物流轨迹 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @Cacheable(cacheNames = RedisKeyConstants.EXPRESS_TRACK, key = "#code + '-' + #logisticsNo + '-' + #receiverMobile", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            condition = "#result != null") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Cacheable(cacheNames = RedisKeyConstants.EXPRESS_TRACK, key = "#code + '-' + #logisticsNo + '-' + #receiverMobile", condition = "#result != null") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public List<ExpressTrackRespDTO> getExpressTrackList(String code, String logisticsNo, String receiverMobile) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return expressClientFactory.getDefaultExpressClient().getExpressTrackList( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                new ExpressTrackQueryReqDTO().setExpressCode(code).setLogisticsNo(logisticsNo) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        .setPhone(receiverMobile)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return expressClientFactory.getDefaultExpressClient().getExpressTrackList(new ExpressTrackQueryReqDTO().setExpressCode(code).setLogisticsNo(logisticsNo).setPhone(receiverMobile)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -296,8 +306,7 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public TradeOrderItemDO getOrderItem(Long userId, Long itemId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         TradeOrderItemDO orderItem = tradeOrderItemMapper.selectById(itemId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (orderItem != null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                && ObjectUtil.notEqual(orderItem.getUserId(), userId)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (orderItem != null && ObjectUtil.notEqual(orderItem.getUserId(), userId)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return orderItem; 
			 |