瀏覽代碼

Merge remote-tracking branch 'origin/main'

lishiqiang 1 周之前
父節點
當前提交
ff9bedae06

+ 8 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/OtcTradeOrderController.java

@@ -292,6 +292,10 @@ public class OtcTradeOrderController {
         List<VoyageRespVO> voyageRespVOList = BeanUtils.toBean(voyageList, VoyageRespVO.class);
         Map<Long, VoyageRespVO> voyageRespVoMap = CollectionUtils.convertMap(voyageRespVOList, VoyageRespVO::getId);
 
+        // 拼房数量
+        List<OrderShareVO> orderShareVOS = tradeOrderRoomModelService.getOrderShareStatsByOrderIds(orderIds);
+        Map<Long, List<OrderShareVO>> orderShareMap = CollectionUtils.convertMultiMap(orderShareVOS, OrderShareVO::getOrderId);
+
         if (!list.isEmpty()) {
             list.forEach(item -> {
                 MapUtils.findAndThen(shipMap, item.getShipId(), ship -> item.setShipName(ship.getName()));
@@ -314,6 +318,10 @@ public class OtcTradeOrderController {
                     roomDesc.forEach((key, value) -> roomDescStr.set(roomDescStr.get() + " " + value.size() + "*" + key));
                     item.setRoomModelDetails(roomDescStr.get().trim());
                 }
+                MapUtils.findAndThen(orderShareMap, item.getId(), orderShareList -> {
+                    String shareDesc = orderShareList.stream().map(orderShare -> orderShare.getNum() + "" + orderShare.getGender()).collect(Collectors.joining());
+                    item.setShareDesc(shareDesc);
+                });
             });
         }
         return success(page);

+ 18 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/order/OrderShareVO.java

@@ -0,0 +1,18 @@
+package com.yc.ship.module.trade.controller.admin.order.vo.order;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "拼房订单统计")
+@Data
+public class OrderShareVO {
+
+    @Schema(description = "订单ID")
+    private Long orderId;
+
+    @Schema(description = "性别")
+    private String gender;
+
+    @Schema(description = "数量")
+    private Integer num;
+}

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

@@ -3,6 +3,7 @@ package com.yc.ship.module.trade.dal.mysql.order;
 import com.yc.ship.framework.mybatis.core.mapper.BaseMapperX;
 import com.yc.ship.framework.mybatis.core.query.LambdaQueryWrapperX;
 import com.yc.ship.framework.tenant.core.aop.TenantIgnore;
+import com.yc.ship.module.trade.controller.admin.order.vo.order.OrderShareVO;
 import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderCountryDO;
 import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderRoomModelDO;
 import org.apache.ibatis.annotations.Mapper;
@@ -33,4 +34,11 @@ public interface TradeOrderRoomModelMapper extends BaseMapperX<TradeOrderRoomMod
     @Update("UPDATE trade_order_room_model SET deleted = #{deleted},update_time = now() WHERE order_id = #{orderId}")
     @TenantIgnore
     void updateDeleted(@Param("orderId") Long orderId, @Param("deleted")  int deleted);
+
+    /**
+     * 统计订单拼房数据
+     * @param orderIds
+     * @return
+     */
+    List<OrderShareVO> selectOrderShareStatsByOrderIds(@Param("orderIds") List<Long> orderIds);
 }

+ 8 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/TradeOrderRoomModelService.java

@@ -1,5 +1,6 @@
 package com.yc.ship.module.trade.service.order;
 
+import com.yc.ship.module.trade.controller.admin.order.vo.order.OrderShareVO;
 import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderRoomModelDO;
 
 import java.util.List;
@@ -13,4 +14,11 @@ public interface TradeOrderRoomModelService {
 
 
     List<TradeOrderRoomModelDO> getListByOrderIds(List<Long> orderIds);
+
+    /**
+     * 获取订单拼房数量统计
+     * @param orderIds
+     * @return
+     */
+    List<OrderShareVO> getOrderShareStatsByOrderIds(List<Long> orderIds);
 }

+ 9 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/impl/TradeOrderRoomModelServiceImpl.java

@@ -1,5 +1,6 @@
 package com.yc.ship.module.trade.service.order.impl;
 
+import com.yc.ship.module.trade.controller.admin.order.vo.order.OrderShareVO;
 import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderRoomModelDO;
 import com.yc.ship.module.trade.service.order.TradeOrderRoomModelService;
 import org.springframework.stereotype.Service;
@@ -32,4 +33,12 @@ public class TradeOrderRoomModelServiceImpl implements TradeOrderRoomModelServic
         }
         return orderRoomModelMapper.selectListByOrderIds(orderIds);
     }
+
+    @Override
+    public List<OrderShareVO> getOrderShareStatsByOrderIds(List<Long> orderIds) {
+        if(orderIds.isEmpty()) {
+            return Collections.emptyList();
+        }
+        return orderRoomModelMapper.selectOrderShareStatsByOrderIds(orderIds);
+    }
 }

+ 13 - 0
ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/order/TradeOrderRoomModelMapper.xml

@@ -16,6 +16,19 @@
         </foreach>
 
     </select>
+    <select id="selectOrderShareStatsByOrderIds"
+            resultType="com.yc.ship.module.trade.controller.admin.order.vo.order.OrderShareVO">
+        select t1.order_id,if(t2.gender=0,'女','男') gender,count(t2.id) num
+        from trade_order_room_model t1
+            LEFT JOIN trade_visitor t2
+                on t1.room_index_id = t2.room_index_id
+        where t1.use_room_num = 0.5 and t1.deleted = 0 and t2.deleted = 0
+        and t1.order_id in
+        <foreach item="item" collection="orderIds" separator="," open="(" close=")" index="index">
+            #{item}
+        </foreach>
+        GROUP BY t1.order_id,t2.gender
+    </select>
 
 
 </mapper>