Yangzw пре 10 месеци
родитељ
комит
c88d217625

+ 9 - 0
feifan-module-mall/feifan-module-trade-api/src/main/java/cn/newfeifan/mall/module/trade/enums/BacklogConstants.java

@@ -0,0 +1,9 @@
+package cn.newfeifan.mall.module.trade.enums;
+
+/**
+ * 待办的类型
+ */
+public interface BacklogConstants {
+    String BACKLOG_SHIPMENTS = "待发货";
+    String BACKLOG_AFTER_SALE = "待售后";
+}

+ 7 - 7
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/controller/admin/order/TradeOrderController.java

@@ -70,16 +70,9 @@ public class TradeOrderController {
     @Resource
     private TradeOrderLogService tradeOrderLogService;
     @Resource
-    private TradeOrderProperties tradeOrderProperties;
-    @Resource
     private MemberUserApi memberUserApi;
-
-    @Resource
-    private DeliveryExpressService deliveryExpressService;
     @Resource
     private AfterSaleService afterSaleService;
-
-
     @Resource
     private PayOrderService orderService;
     @Resource
@@ -109,6 +102,13 @@ public class TradeOrderController {
         return success(TradeOrderConvert.INSTANCE.convertPage(pageResult, orderItems, userMap));
     }
 
+    @GetMapping("/get-backlog")
+    @Operation(summary = "获取待发货及待售后")
+    @PreAuthorize("@ss.hasAnyPermissions('trade:order:query')")
+    public CommonResult<Map<String,Long>> getBacklog() {
+        return success(tradeOrderQueryService.getBacklog());
+    }
+
     @GetMapping("/summary")
     @Operation(summary = "获得交易订单统计")
     @PreAuthorize("@ss.hasPermission('trade:order:query')")

+ 8 - 0
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/dal/mysql/aftersale/AfterSaleMapper.java

@@ -79,4 +79,12 @@ public interface AfterSaleMapper extends BaseMapperX<AfterSaleDO> {
         );
     }
 
+    default Long selectCount(Long shopId,Long merId,Integer... status){
+        return selectCount(new LambdaQueryWrapperX<AfterSaleDO>()
+                .eq(AfterSaleDO::getShopId, shopId)
+                .eq(AfterSaleDO::getMerchantId, merId)
+                .in(AfterSaleDO::getStatus, (Object[]) status)
+        );
+    }
+
 }

+ 7 - 0
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/dal/mysql/order/TradeOrderMapper.java

@@ -165,4 +165,11 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
         );
     }
 
+    default Long selectCountByStatus(Integer status, Long shopId, Long merId){
+        return selectCount(new LambdaQueryWrapperX<TradeOrderDO>()
+                .eq(TradeOrderDO::getStatus, status)
+                .eq(TradeOrderDO::getShopId, shopId)
+                .eq(TradeOrderDO::getMerchantId, merId)
+        );
+    }
 }

+ 8 - 0
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/service/aftersale/AfterSaleService.java

@@ -157,4 +157,12 @@ public interface AfterSaleService {
     List<AfterSaleDO> getAfterSaleByMerAndShop();
 
     Map<Integer, Long> getTabsCount(AfterSalePageReqVO pageVO);
+
+    /**
+     * 获取售后订单数量
+     * @param shopId  店铺ID
+     * @param merId  商户ID
+     * @return    售后订单数量
+     */
+    Long selectCountByStatus(Long shopId, Long merId);
 }

+ 8 - 0
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/service/aftersale/AfterSaleServiceImpl.java

@@ -522,5 +522,13 @@ public class AfterSaleServiceImpl implements AfterSaleService {
         return counts;
     }
 
+    @Override
+    public Long selectCountByStatus(Long shopId, Long merId) {
+        return tradeAfterSaleMapper.selectCount(shopId,merId,AfterSaleStatusEnum.APPLY.getStatus(),
+                AfterSaleStatusEnum.SELLER_AGREE.getStatus(),
+                AfterSaleStatusEnum.BUYER_DELIVERY.getStatus(),
+                AfterSaleStatusEnum.WAIT_REFUND.getStatus());
+    }
+
 
 }

+ 7 - 0
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/service/order/TradeOrderQueryService.java

@@ -11,6 +11,7 @@ import cn.newfeifan.mall.module.trade.framework.delivery.core.client.dto.Express
 
 import java.util.Collection;
 import java.util.List;
+import java.util.Map;
 
 import static java.util.Collections.singleton;
 
@@ -199,4 +200,10 @@ public interface TradeOrderQueryService {
     List<TradeOrderDO> getOrderByMerId(Long id);
 
     TradeOrderDO getOrderById(Long orderId);
+
+    /**
+     * 获取待发货订单及待办的售后订单
+     * @return 集合
+     */
+    Map<String, Long> getBacklog();
 }

+ 23 - 14
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/service/order/TradeOrderQueryServiceImpl.java

@@ -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;