ソースを参照

fix: 修改订单合计,统计人数用已填写游客信息为准

luofeiyun 2 週間 前
コミット
e431dcddac

+ 6 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/order/TradeOrderMapper.java

@@ -236,4 +236,10 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
      * @return
      */
     AppItineraryDetailVO selectItineraryDetail(@Param("orderId") Long orderId);
+    /**
+     * 统计另外的订单合计
+     * @param orderIds
+     * @return
+     */
+    OrderTotalRespVO selectTotal2ByOrderIds(@Param("orderIds") List<Long> orderIds);
 }

+ 6 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/impl/OtcTradeOrderServiceImpl.java

@@ -695,9 +695,15 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         }
         OrderTotalRespVO totalMap = tradeOrderMapper.selectTotalByOrderIds(orderIds);
         OrderTotalRespVO totalMap1 = tradeOrderMapper.selectTotal1ByOrderIds(orderIds);
+        OrderTotalRespVO totalMap2 = tradeOrderMapper.selectTotal2ByOrderIds(orderIds);
         totalMap.setDeposi(totalMap1.getDeposi());
         totalMap.setDamaged(totalMap1.getDamaged());
         totalMap.setSupplementAmount(totalMap1.getSupplementAmount());
+        totalMap.setAdultTotalNum(totalMap2.getAdultTotalNum());
+        totalMap.setChildTotalNum(totalMap2.getChildTotalNum());
+        totalMap.setBabyTotalNum(totalMap2.getBabyTotalNum());
+        totalMap.setWithTotalNum(totalMap2.getWithTotalNum());
+        totalMap.setLeaderTotalNum(totalMap2.getLeaderTotalNum());
         //设置拼房信息
         List<OrderShareVO> orderShareVOS = tradeOrderRoomModelMapper.selectOrderShareStatsByOrderIds1(orderIds);
         AtomicReference<Integer> totalShareNum = new AtomicReference<>(0);

+ 16 - 0
ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/order/TradeOrderMapper.xml

@@ -2549,5 +2549,21 @@
             1=1 and
             t1.id = #{orderId}
     </select>
+    <select id="selectTotal2ByOrderIds"
+            resultType="com.yc.ship.module.trade.controller.admin.order.vo.order.OrderTotalRespVO">
+        SELECT
+        ifnull( sum( CASE WHEN type = 'adultTake' OR type = 'adultPlus' THEN num ELSE 0 END ), 0 ) AS adultTotalNum,
+        ifnull( sum( CASE WHEN type = 'childTake' OR type = 'childNonTake' OR type = 'childPlus' THEN num ELSE 0 END ), 0 ) AS childTotalNum,
+        ifnull( sum( CASE WHEN type = 'babyTake' OR type = 'babyNonTake' OR type = 'babyPlus' THEN num ELSE 0 END ), 0 ) AS babyTotalNum,
+        ifnull( sum( CASE WHEN type = 'leader' THEN num ELSE 0 END ), 0 ) AS leaderTotalNum,
+        ifnull( sum( CASE WHEN type = 'with' THEN num ELSE 0 END ), 0 ) AS withTotalNum
+        FROM
+            ( SELECT type, count( 1 ) num FROM trade_visitor WHERE deleted = 0
+                                                             and order_id in
+                                                             <foreach collection="orderIds" item="item" separator=","  open="(" close=")">
+                                                                 #{item}
+                                                             </foreach>
+                                                             GROUP BY type ) a
+    </select>
 </mapper>