Browse Source

Merge remote-tracking branch 'origin/release-201832-wangcz' into release-201832-wangcz

wangcz 7 years ago
parent
commit
8befa6e42d

+ 3 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/dao/GoodsDao.java

@@ -562,6 +562,9 @@ public interface GoodsDao extends JpaSpecificationExecutor<Goods>, JpaRepository
     @Query(value = "select g from Goods g where g.productid =:productId order by g.id desc")
     List<Goods> findByProductIdOrderByGoodsId(@Param("productId") Long id);
 
+    @Query(value = "select g.productid from Goods g where g.productid in :ids")
+    Set<Long> findProdIds(@Param("ids") Set<Long> ids);
+
     /**
      * 获取库存数量前几的代理经销商品,Top k 查询
      *

+ 25 - 7
src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/ProductServiceImpl.java

@@ -539,21 +539,39 @@ public class ProductServiceImpl implements ProductService {
      */
     private List<Goods> exportGoodsByProduct(List<V_ProductPrivate> productList) {
         List<Goods> resultList = new ArrayList<>();
+
+        Set<Long> exitGoodsOfProdIds = goodsDao.findProdIds(getProdIds(productList));
         for (V_ProductPrivate product : productList) {
-            List<Goods> goodsList = goodsDao.findByProductIdOrderByGoodsId(product.getId());
-            if (!CollectionUtils.isEmpty(goodsList)) {
-                //目前现在一颗物料只能存在一个在售产品,目前取id最大的在售产品信息
-                Goods needGoods = goodsList.get(0);
-                needGoods.setCostPrice(product.getPrice());
-                resultList.add(needGoods);
-            } else {
+            if (!exitGoodsOfProdIds.contains(product.getId())) {
                 Goods g = Goods.productConvertGoods(product);
                 resultList.add(g);
             }
         }
+        if (!CollectionUtils.isEmpty(exitGoodsOfProdIds)) {
+            String prodIdsStr = org.apache.commons.lang3.StringUtils.join(exitGoodsOfProdIds, ",");
+            String sql = new String("SELECT go_batchcode batchCode,br_name_en brandNameEn,ki_name kindNameCn," +
+                    "cmp_code code,go_spec spec,go_packaging packaging,go_mindelivery minDelivery,go_maxdelivery maxDelivery," +
+                    "go_isbreakup breakUp,go_minpackqty minPackQty,go_minbuyqty minBuyQty,go_storeid storeid,go_reserve reserve," +
+                    "go_status status,cmp_uuid uuid,go_qtyprice qtyPrice,go_minpricermb minPriceRMB,go_maxpricermb maxPriceRMB," +
+                    "go_minpriceusd minPriceUSD,go_maxpriceusd maxPriceUSD,cr_name currencyName,pr_price costPrice " +
+                    "FROM trade$goods g LEFT JOIN v$product$private on pr_id=go_productid WHERE go_id IN (SELECT max(go_id) " +
+                    "from trade$goods WHERE go_productid in (" + prodIdsStr + ") GROUP BY go_productid)");
+            List<Goods> goodsList = commonDao.query(sql, Goods.class);
+            resultList.addAll(goodsList);
+        }
         return resultList;
     }
 
+    private Set<Long> getProdIds(List<V_ProductPrivate> productList) {
+        Set<Long> prodIds = new HashSet<>();
+        if (!CollectionUtils.isEmpty(productList)) {
+            for (V_ProductPrivate productPrivate : productList) {
+                prodIds.add(productPrivate.getId());
+            }
+        }
+        return prodIds;
+    }
+
     @Override
     public List<Goods> getSelectedProducts(String idList) {
         String[] idArray = idList.split(SplitChar.COMMA);