Jelajahi Sumber

Merge branch 'refs/heads/master' into xiaolu

肖路 1 bulan lalu
induk
melakukan
2cd100359e

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

@@ -19,6 +19,7 @@ import org.dromara.customer.api.domain.CustomerApiVo;
 import org.dromara.order.domain.OrderCustomerFlowLink;
 import org.dromara.order.domain.bo.*;
 import org.dromara.order.domain.dto.OrderPayDto;
+import org.dromara.order.domain.vo.OrderCountVo;
 import org.dromara.order.domain.vo.OrderMainVo;
 import org.dromara.order.domain.vo.OrderProductVo;
 import org.dromara.order.domain.vo.OrderStatusStats;
@@ -84,6 +85,13 @@ public class PcOrderController extends BaseController {
         return orderMainService.queryPageList(bo, pageQuery);
     }
 
+    @GetMapping("/countOrder")
+    public OrderCountVo countOrder() {
+        // 获取当前登录用户的企业ID
+        Long customerId = LoginHelper.getLoginUser().getCustomerId();
+        return orderMainService.countOrderNum(customerId);
+    }
+
     /**
      * 查询当前企业的订单状态统计
      * 返回各状态订单数量

+ 25 - 0
ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/domain/vo/OrderCountVo.java

@@ -0,0 +1,25 @@
+package org.dromara.order.domain.vo;
+
+import lombok.Data;
+
+/**
+ * 订单统计 VO
+ */
+@Data
+public class OrderCountVo {
+
+    /**
+     * 待付款订单数量 (orderStatus = '0')
+     */
+    private Integer pendingPaymentCount;
+
+    /**
+     * 待发货订单数量 (orderStatus = '2')
+     */
+    private Integer pendingShipmentCount;
+
+    /**
+     * 待收货订单数量 (orderStatus = '4')
+     */
+    private Integer pendingReceiptCount;
+}

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

@@ -2,14 +2,13 @@ package org.dromara.order.mapper;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Param;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 import org.dromara.order.domain.OrderMain;
+import org.dromara.order.domain.vo.OrderCountVo;
 import org.dromara.order.domain.vo.OrderEvaluationListVo;
 import org.dromara.order.domain.vo.OrderMainVo;
-import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 import org.dromara.order.domain.vo.OrderStatusStats;
 
-import java.util.List;
-
 /**
  * 订单主信息Mapper接口
  *
@@ -20,6 +19,15 @@ public interface OrderMainMapper extends BaseMapperPlus<OrderMain, OrderMainVo>
 
     OrderStatusStats selectOrderStatusCounts();
 
+
+    /**
+     * 统计订单数量
+     *
+     * @param customerId 客户ID
+     * @return 订单统计VO
+     */
+    OrderCountVo countOrderNum(@Param("customerId") Long customerId);
+
     /**
      * 查询客户的所有已完成订单(主信息 + 评价状态)
      */

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

@@ -1,18 +1,13 @@
 package org.dromara.order.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.dromara.common.core.exception.api.ZhongcheException;
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.common.core.exception.api.ZhongcheException;
 import org.dromara.order.domain.OrderMain;
-import org.dromara.order.domain.OrderProduct;
 import org.dromara.order.domain.bo.OrderMainBo;
 import org.dromara.order.domain.bo.OrderProductBo;
-import org.dromara.order.domain.vo.OrderDeliverVo;
-import org.dromara.order.domain.vo.OrderMainVo;
-
-import org.dromara.order.domain.vo.OrderProductVo;
-import org.dromara.order.domain.vo.OrderStatusStats;
+import org.dromara.order.domain.vo.*;
 import org.dromara.order.utils.kd100.domain.TrackData;
 
 import java.util.Collection;
@@ -45,6 +40,8 @@ public interface IOrderMainService extends IService<OrderMain> {
      */
     TableDataInfo<OrderMainVo> queryPageList(OrderMainBo bo, PageQuery pageQuery);
 
+    OrderCountVo countOrderNum(Long customerId);
+
     /**
      * 查询符合条件的订单主信息列表
      *

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

@@ -22,13 +22,14 @@ import org.dromara.common.redis.utils.SequenceUtils;
 import org.dromara.customer.api.RemoteCustomerSalesService;
 import org.dromara.customer.api.RemoteCustomerService;
 import org.dromara.customer.api.domain.vo.RemoteCustomerSalesVo;
-import org.dromara.order.domain.OrderMain;
-import org.dromara.order.domain.OrderProduct;
 import org.dromara.external.api.zhongche.RemoteZhongChePullService;
 import org.dromara.external.api.zhongche.domain.bo.OrderConfirmBo;
 import org.dromara.external.api.zhongche.domain.bo.OrderRejectBo;
 import org.dromara.external.api.zhongche.domain.vo.GoodsUpdateVo;
-import org.dromara.order.domain.*;
+import org.dromara.order.domain.OrderDeliver;
+import org.dromara.order.domain.OrderMain;
+import org.dromara.order.domain.OrderMainCrrcExt;
+import org.dromara.order.domain.OrderProduct;
 import org.dromara.order.domain.bo.OrderMainBo;
 import org.dromara.order.domain.bo.OrderProductBo;
 import org.dromara.order.domain.dto.AssignmentStatsDto;
@@ -169,6 +170,11 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
         return TableDataInfo.build(result);
     }
 
+    @Override
+    public OrderCountVo countOrderNum(Long customerId) {
+        return baseMapper.countOrderNum(customerId);
+    }
+
     @Override
     public TableDataInfo<OrderProductVo> getCustomerOrderProductList(Set<Long> orderIdList) {
         // 1. 空值与空集合校验
@@ -677,7 +683,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
     @Override
     public TableDataInfo<OrderMainVo> queryZhongChePageList(OrderMainBo bo, PageQuery pageQuery) {
         LambdaQueryWrapper<OrderMain> lqw = buildQueryWrapper(bo);
-        lqw.eq(OrderMain::getDataSource,"zhongche");
+        lqw.eq(OrderMain::getDataSource, "zhongche");
         Page<OrderMainVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
         List<OrderMainVo> records = result.getRecords();
 
@@ -745,7 +751,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
             throw new ZhongcheException("中车订单扩展信息不存在");
         }
         String crrcOrderNo = ext.getCrrcOrderNo();
-        OrderConfirmBo bo = new OrderConfirmBo(crrcOrderNo,orderNo);
+        OrderConfirmBo bo = new OrderConfirmBo(crrcOrderNo, orderNo);
         GoodsUpdateVo goodsUpdateVo = zhongChePullService.mallOrderConfirm(bo);
         if (goodsUpdateVo.getResult() != 1) {
             throw new ZhongcheException("中车订单扩展信息不存在");
@@ -774,7 +780,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
             throw new ZhongcheException("中车订单扩展信息不存在");
         }
         String crrcOrderNo = ext.getCrrcOrderNo();
-        OrderRejectBo bo = new OrderRejectBo(crrcOrderNo,orderNo,reason);
+        OrderRejectBo bo = new OrderRejectBo(crrcOrderNo, orderNo, reason);
         GoodsUpdateVo goodsUpdateVo = zhongChePullService.mallOrderReject(bo);
         if (goodsUpdateVo.getResult() != 1) {
             throw new ZhongcheException("拒绝失败");

+ 9 - 0
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMainMapper.xml

@@ -35,4 +35,13 @@
 
         ORDER BY o.order_time DESC
     </select>
+
+    <select id="countOrderNum" resultType="org.dromara.order.domain.vo.OrderCountVo">
+        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 pendingReceiptCount
+        FROM order_main
+        WHERE customer_id = #{customerId}
+          AND del_flag = '0'
+    </select>
 </mapper>