Преглед на файлове

优化客户信息表认领逻辑

cgp преди 1 седмица
родител
ревизия
419c13aa7b

+ 2 - 0
fs-service/src/main/java/com/fs/hisStore/mapper/FsStoreOrderItemScrmMapper.java

@@ -72,6 +72,8 @@ public interface FsStoreOrderItemScrmMapper
     @Select("select * from fs_store_order_item_scrm where order_id=#{orderId}")
     List<FsStoreOrderItemVO> selectMyFsStoreOrderItemListByOrderId(Long id);
 
+    List<FsStoreOrderItemVO> selectByOrderIds(@Param("orderIds") List<Long> orderIds);
+
     List<FsStoreOrderItemVO> selectFsStoreOrderItemListAndProductByOrderId(Long id);
 
     @Select({"<script> " +

+ 37 - 1
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreOrderScrmServiceImpl.java

@@ -2839,7 +2839,43 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
 
     @Override
     public List<FsStoreOrderExportVO> selectFsStoreOrderListVOByExport(FsStoreOrderParam param) {
-        return fsStoreOrderMapper.selectFsStoreOrderListVOByExport(param);
+        // 1. 查询订单列表
+        List<FsStoreOrderExportVO> orderList = fsStoreOrderMapper.selectFsStoreOrderListVOByExport(param);
+        if (CollectionUtils.isEmpty(orderList)) {
+            return orderList;
+        }
+
+        // 2. 收集所有订单ID
+        List<Long> orderIds = orderList.stream()
+                .map(FsStoreOrderExportVO::getId)
+                .collect(Collectors.toList());
+
+        // 3. 批量查询所有订单的商品
+        List<FsStoreOrderItemVO> allItems = fsStoreOrderItemMapper.selectByOrderIds(orderIds);
+
+        // 4. 组装 Map<订单ID, 商品列表>
+        Map<Long, List<FsStoreOrderItemVO>> itemMap = allItems.stream()
+                .collect(Collectors.groupingBy(FsStoreOrderItemVO::getOrderId));
+
+        // 5. 填充商品名称
+        for (FsStoreOrderExportVO order : orderList) {
+            List<FsStoreOrderItemVO> items = itemMap.get(order.getId());
+            if (items != null && !items.isEmpty()) {
+                List<String> productNames = new ArrayList<>();
+                for (FsStoreOrderItemVO item : items) {
+                    String jsonInfoStr = item.getJsonInfo();
+                    if (StringUtils.isNotEmpty(jsonInfoStr)) {
+                        cn.hutool.json.JSONObject jsonInfo = cn.hutool.json.JSONUtil.parseObj(jsonInfoStr);
+                        String productName = jsonInfo.getStr("productName");
+                        if (StringUtils.isNotEmpty(productName)) {
+                            productNames.add(productName);
+                        }
+                    }
+                }
+                order.setProductName(String.join(",", productNames));
+            }
+        }
+        return orderList;
     }
 
     @Override

+ 7 - 0
fs-service/src/main/resources/mapper/hisStore/FsStoreOrderItemScrmMapper.xml

@@ -45,6 +45,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                  where i.order_id=#{orderId}
     </select>
 
+    <select id="selectByOrderIds" resultType="com.fs.hisStore.vo.FsStoreOrderItemVO">
+        select * from fs_store_order_item_scrm where order_id in
+        <foreach item="orderId" collection="orderIds" open="(" separator="," close=")">
+            #{orderId}
+        </foreach>
+    </select>
+
     <insert id="insertFsStoreOrderItem" parameterType="FsStoreOrderItemScrm" useGeneratedKeys="true" keyProperty="itemId">
         insert into fs_store_order_item_scrm
         <trim prefix="(" suffix=")" suffixOverrides=",">