Sfoglia il codice sorgente

feat(order): 修改订单状态统计查询接口增加权限过滤

- 在 IOrderMainService 中修改 queryOrderStatusStats 方法签名,添加 partnerId 和 supplierId 参数
- 在 OrderMainMapper 中更新 selectOrderStatusCounts 方法签名,添加参数注解
- 在 OrderMainMapper.xml 中修改 SQL 查询,添加 check_status 条件和 assignee_id 过滤
- 在 PcOrderController 中调用时传入 null 值保持原有功能
hurx 2 settimane fa
parent
commit
100d56a68e

+ 5 - 1
ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/controller/OrderMainController.java

@@ -95,7 +95,11 @@ public class OrderMainController extends BaseController {
      */
     @GetMapping("/queryOrderStatusStats")
     public OrderStatusStats queryOrderStatusStats() {
-        return orderMainService.queryOrderStatusStats();
+        Long partnerId = LoginHelper.getLoginUser().getPartnerId();
+
+        Long supplierId = LoginHelper.getLoginUser().getSupplierId();
+
+        return orderMainService.queryOrderStatusStats(partnerId, supplierId);
     }
 
     /**

+ 1 - 1
ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/controller/pc/PcOrderController.java

@@ -149,7 +149,7 @@ public class PcOrderController extends BaseController {
      */
     @GetMapping("/statusStats")
     public R<OrderStatusStats> getStatusStats() {
-        return R.ok(orderMainService.queryOrderStatusStats());
+        return R.ok(orderMainService.queryOrderStatusStats(null, null));
     }
 
     /**

+ 1 - 1
ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/mapper/OrderMainMapper.java

@@ -17,7 +17,7 @@ import org.dromara.order.domain.vo.OrderStatusStats;
  */
 public interface OrderMainMapper extends BaseMapperPlus<OrderMain, OrderMainVo> {
 
-    OrderStatusStats selectOrderStatusCounts();
+    OrderStatusStats selectOrderStatusCounts(@Param("partnerId") Long partnerId, @Param("supplierId") Long supplierId);
 
 
     /**

+ 1 - 1
ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/service/IOrderMainService.java

@@ -55,7 +55,7 @@ public interface IOrderMainService extends IService<OrderMain> {
 
     TableDataInfo<OrderProductVo> getOrderProductsWithAvailableQty(Long orderId);
 
-    OrderStatusStats queryOrderStatusStats();
+    OrderStatusStats queryOrderStatusStats(Long partnerId, Long supplierId);
 
     /**
      * 新增订单主信息

+ 2 - 2
ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/service/impl/OrderMainServiceImpl.java

@@ -300,8 +300,8 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
     }
 
     @Override
-    public OrderStatusStats queryOrderStatusStats() {
-        return baseMapper.selectOrderStatusCounts();
+    public OrderStatusStats queryOrderStatusStats(Long partnerId, Long supplierId) {
+        return baseMapper.selectOrderStatusCounts(partnerId, supplierId);
     }
 
     /**

+ 13 - 5
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMainMapper.xml

@@ -6,13 +6,21 @@
     <!-- 查询各订单状态的数量 -->
     <select id="selectOrderStatusCounts" resultType="org.dromara.order.domain.vo.OrderStatusStats">
         SELECT SUM(CASE WHEN order_status = '0' THEN 1 ELSE 0 END) AS pendingPaymentCount,
-               SUM(CASE WHEN order_status = '2' THEN 1 ELSE 0 END) AS pendingShipmentCount,
-               SUM(CASE WHEN order_status = '4' THEN 1 ELSE 0 END) AS shippedCount,
-               SUM(CASE WHEN order_status = '5' THEN 1 ELSE 0 END) AS completedCount,
-               SUM(CASE WHEN order_status = '6' THEN 1 ELSE 0 END) AS closedCount,
-               COUNT(*)                                            AS totalCount
+        SUM(CASE WHEN order_status = '2' THEN 1 ELSE 0 END) AS pendingShipmentCount,
+        SUM(CASE WHEN order_status = '4' THEN 1 ELSE 0 END) AS shippedCount,
+        SUM(CASE WHEN order_status = '5' THEN 1 ELSE 0 END) AS completedCount,
+        SUM(CASE WHEN order_status = '6' THEN 1 ELSE 0 END) AS closedCount,
+        COUNT(*) AS totalCount
         FROM order_main
         WHERE del_flag = '0'
+        AND check_status = '1'
+        <if test="partnerId != null ">
+            AND assignee_id = #{partnerId}
+        </if>
+        <if test="supplierId != null ">
+            AND assignee_id = #{supplierId}
+        </if>
+
     </select>
 
     <select id="selectEvaluationMainListPage" resultType="org.dromara.order.domain.vo.OrderEvaluationListVo">