Quellcode durchsuchen

优化Goods下载

wangyc vor 7 Jahren
Ursprung
Commit
851e6a5d32

+ 12 - 1
mall-search/src/main/java/com/uas/search/model/Products.java

@@ -1,10 +1,13 @@
 package com.uas.search.model;
 
+import java.sql.ResultSet;
+import java.sql.SQLException;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.Id;
 import javax.persistence.Table;
 import java.io.Serializable;
+import org.springframework.jdbc.core.RowMapper;
 
 /**
  * 物料(用于非标搜索)
@@ -14,7 +17,7 @@ import java.io.Serializable;
  */
 @Entity
 @Table(name = "products")
-public class Products implements Serializable {
+public class Products implements RowMapper, Serializable {
 
     /**
      * 序列号
@@ -54,4 +57,12 @@ public class Products implements Serializable {
                 ", pcmpCode='" + pcmpCode + '\'' +
                 '}';
     }
+
+    @Override
+    public Products mapRow(ResultSet rs, int i) throws SQLException {
+        Products products = new Products();
+        products.setId(rs.getLong("pr_id"));
+        products.setPcmpCode(rs.getString("pr_pcmpcode"));
+        return products;
+    }
 }

+ 12 - 1
mall-search/src/main/java/com/uas/search/model/Store.java

@@ -2,10 +2,13 @@ package com.uas.search.model;
 
 import java.io.Serializable;
 
+import java.sql.ResultSet;
+import java.sql.SQLException;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.Id;
 import javax.persistence.Table;
+import org.springframework.jdbc.core.RowMapper;
 
 /**
  * 店铺
@@ -15,7 +18,7 @@ import javax.persistence.Table;
  */
 @Entity
 @Table(name = "store$info")
-public class Store implements Serializable {
+public class Store implements RowMapper, Serializable {
 
 	private static final long serialVersionUID = 1L;
 
@@ -67,4 +70,12 @@ public class Store implements Serializable {
 		return "Store [id=" + id + ", uuid=" + uuid + ", type=" + type + "]";
 	}
 
+	@Override
+	public Store mapRow(ResultSet rs, int i) throws SQLException {
+		Store store = new Store();
+		store.setId(rs.getLong("id"));
+		store.setUuid(rs.getString("ST_UUID"));
+		store.setType(rs.getString("ST_TYPE"));
+		return store;
+	}
 }

+ 1 - 7
mall-search/src/main/java/com/uas/search/service/impl/IndexServiceImpl.java

@@ -816,13 +816,7 @@ public class IndexServiceImpl implements IndexService {
 
             }
             tableName = TRADE_GOODS_TABLE_NAME;
-            DownloadHelper<TradeGoods> downloadHelper = new DownloadHelper<>(threads, startFileIndex, endFileIndex, tableName, sortField, new DownloadService<TradeGoods>() {
-                @Override
-                protected void println(PrintWriter printWriter, TradeGoods element) {
-                    Goods goods = goodsDao.findByTradeGoods(element);
-                    printWriter.println(JSONObject.toJSONString(goods));
-                }
-            }, validateResult, jdbcTemplate, jdbcService);
+            DownloadHelper<Goods> downloadHelper = new DownloadHelper<>(threads, startFileIndex, endFileIndex, tableName, sortField, new DownloadService<Goods>(), validateResult, jdbcTemplate, jdbcService);
             return downloadHelper.getResult();
         } else if (tableName.equals(PCB_TABLE_NAME)) {
             try {

+ 49 - 2
mall-search/src/main/java/com/uas/search/service/impl/JdbcServiceImpl.java

@@ -144,7 +144,7 @@ public class JdbcServiceImpl<T> implements JdbcService{
      * @return
      */
     private List<T> queryVProducts(String sql) {
-        return (List<T>) jdbcTemplate.query(sql, new V_Products());
+        return jdbcTemplate.query(sql, new V_Products());
     }
 
     /**
@@ -153,6 +153,53 @@ public class JdbcServiceImpl<T> implements JdbcService{
      * @return
      */
     private List<T> queryGoods(String sql) {
-        return  jdbcTemplate.query(sql, new TradeGoods());
+        List<Goods> goodsList = new ArrayList<>();
+        List<TradeGoods> tradeGoodses = jdbcTemplate.query(sql, new TradeGoods());
+        String componentSql = "select * from product$component where cmp_uuid = ";
+        String kindSql = "select * from product$kind where ki_id = ";
+        String brandSql = "select * from product$brand where br_id = ";
+        String productsql = "select * from products where pr_id = ";
+        String storeSql = "select * from store$info where st_uuid = ";
+        for (TradeGoods tradeGoods : tradeGoodses) {
+            Component component = null;
+            if (tradeGoods.getCmpUuid() != null){
+                List<Component> components = jdbcTemplate.query(componentSql + tradeGoods.getCmpUuid(), new Component());
+                if (!CollectionUtils.isEmpty(components)) {
+                    component = components.get(0);
+
+                    if (component.getKindId() != null) {
+                        List<Kind> kinds = jdbcTemplate.query(kindSql + component.getKindId(), new Kind());
+                        if (!CollectionUtils.isEmpty(kinds)) {
+                            component.setKind(kinds.get(0));
+                        }
+                    }
+                    if (component.getBrandId() != null) {
+                        List<Brand> brands = jdbcTemplate.query(brandSql + component.getBrandId(), new Brand());
+                        if (!CollectionUtils.isEmpty(brands)) {
+                            component.setBrand(brands.get(0));
+                        }
+                    }
+                }
+            }
+
+            Store store = null;
+            if (tradeGoods.getStoreId() != null) {
+                List<Store> stores = jdbcTemplate.query(storeSql + tradeGoods.getStoreId(), new Store());
+                if (!CollectionUtils.isEmpty(stores)) {
+                    store = stores.get(0);
+                }
+            }
+
+            Products products = null;
+            if (tradeGoods.getProductId() != null) {
+                List<Products> productsList = jdbcTemplate.query(productsql + tradeGoods.getProductId(), new Products());
+                if (!CollectionUtils.isEmpty(productsList)) {
+                    products = productsList.get(0);
+                }
+            }
+
+            goodsList.add(new Goods(tradeGoods, store, component, products));
+        }
+        return null;
     }
 }