Browse Source

change the structure of Goods

sunyj 8 years ago
parent
commit
5b3ede3260

+ 0 - 1
src/main/java/com/uas/search/constant/SearchConstants.java

@@ -99,7 +99,6 @@ public class SearchConstants {
 	public static final String COMPONENT_PROPERTY_TOKENIZED_SUFFIX = "_tokenized";
 
 	// 批次索引字段的key
-	public static final String GOODS_ID_FIELD = "id";
 	public static final String GOODS_GO_ID_FIELD = "go_id";
 	public static final String GOODS_GO_RESERVE_FIELD = "go_reserve";
 	public static final String GOODS_GO_MINPRICERMB_FIELD = "go_minpricermb";

+ 4 - 4
src/main/java/com/uas/search/dao/GoodsDao.java

@@ -38,10 +38,10 @@ public class GoodsDao {
 			return null;
 		}
 		List<Goods> goodsesList = new ArrayList<>();
-		if (goods.getGoId() != null) {
-			goodsesList.add(findByGoId(goods.getGoId()));
-		} else if (goods.getCmpId() != null) {
-			goodsesList.addAll(findByCmpId(goods.getCmpId()));
+		if (goods.getTradeGoods() != null && goods.getTradeGoods().getId() != null) {
+			goodsesList.add(findByGoId(goods.getTradeGoods().getId()));
+		} else if (goods.getComponent() != null && goods.getComponent().getId() != null) {
+			goodsesList.addAll(findByCmpId(goods.getComponent().getId()));
 		}
 		return goodsesList;
 	}

+ 6 - 2
src/main/java/com/uas/search/jms/QueueMessageParser.java

@@ -164,9 +164,13 @@ public class QueueMessageParser {
 	private Goods parseGoods(@NotEmpty("id") Long id, @NotEmpty("data") String data) throws JSONException {
 		Goods goods = new Goods();
 		if (data == null || data.equalsIgnoreCase("cmpId")) {
-			goods.setCmpId(id);
+            Component component = new Component();
+            component.setId(id);
+            goods.setComponent(component);
 		} else if (data.equalsIgnoreCase("goId")){
-			goods.setGoId(id);
+            TradeGoods tradeGoods = new TradeGoods();
+            tradeGoods.setId(id);
+			goods.setTradeGoods(tradeGoods);
 		} else {
             throw new IllegalArgumentException("未指定是 cmpId 还是 goId");
         }

+ 16 - 154
src/main/java/com/uas/search/model/Goods.java

@@ -13,34 +13,9 @@ public class Goods implements Serializable {
 	private static final long serialVersionUID = 1L;
 
 	/**
-	 * id
+	 * 批次
 	 */
-	private String id;
-
-	/**
-	 * 批次id
-	 */
-	private Long goId;
-
-	/**
-	 * 批次的库存
-	 */
-	private Double goReserve;
-
-	/**
-	 * 批次的人民币价格
-	 */
-	private Double goMinPriceRMB;
-
-	/**
-	 * 批次的美元价格
-	 */
-	private Double goMinPriceUSD;
-
-	/**
-	 * 货币
-	 */
-	private String crName;
+	private TradeGoods tradeGoods;
 
 	/**
 	 * 货源
@@ -48,97 +23,25 @@ public class Goods implements Serializable {
 	private Store store;
 
 	/**
-	 * 器件的id
-	 */
-	private Long cmpId;
-
-	/**
-	 * 原厂型号
-	 */
-	private String cmpCode;
-
-	/**
-	 * 类目
-	 */
-	private Kind kind;
-
-	/**
-	 * 品牌
+	 * 器件
 	 */
-	private Brand brand;
-
-	/**
-	 * 描述
-	 */
-	private String description;
+	private Component component;
 
 	public Goods() {
 	}
 
 	public Goods(TradeGoods tradeGoods, Store store, Component component) {
-		if (tradeGoods != null) {
-			this.goId = tradeGoods.getId();
-			this.goReserve = tradeGoods.getReserve();
-			this.goMinPriceRMB = tradeGoods.getMinPriceRMB();
-			this.goMinPriceUSD = tradeGoods.getMinPriceUSD();
-			this.crName = tradeGoods.getCrName();
-		}
+		this.tradeGoods = tradeGoods;
 		this.store = store;
-		if (component != null) {
-			this.cmpId = component.getId();
-			this.cmpCode = component.getCode();
-			this.kind = component.getKind();
-			this.brand = component.getBrand();
-			this.description = component.getDescription();
-		}
-	}
-
-	public String getId() {
-		return id;
-	}
-
-	public void setId(String id) {
-		this.id = id;
+		this.component = component;
 	}
 
-	public Long getGoId() {
-		return goId;
+	public TradeGoods getTradeGoods() {
+		return tradeGoods;
 	}
 
-	public void setGoId(Long goId) {
-		this.goId = goId;
-	}
-
-	public Double getGoReserve() {
-		return goReserve;
-	}
-
-	public void setGoReserve(Double goReserve) {
-		this.goReserve = goReserve;
-	}
-
-	public Double getGoMinPriceRMB() {
-		return goMinPriceRMB;
-	}
-
-	public void setGoMinPriceRMB(Double goMinPriceRMB) {
-		this.goMinPriceRMB = goMinPriceRMB;
-	}
-
-	public Double getGoMinPriceUSD() {
-		return goMinPriceUSD;
-	}
-
-	public void setGoMinPriceUSD(Double goMinPriceUSD) {
-		this.goMinPriceUSD = goMinPriceUSD;
-	}
-
-	public String getCrName() {
-		return crName;
-	}
-
-	public void setCrName(String crName) {
-		this.crName = crName;
+	public void setTradeGoods(TradeGoods tradeGoods) {
+		this.tradeGoods = tradeGoods;
 	}
 
 	public Store getStore() {
@@ -149,61 +52,20 @@ public class Goods implements Serializable {
 		this.store = store;
 	}
 
-	public Long getCmpId() {
-		return cmpId;
-	}
-
-	public void setCmpId(Long cmpId) {
-		this.cmpId = cmpId;
-	}
-
-	public String getCmpCode() {
-		return cmpCode;
-	}
-
-	public void setCmpCode(String cmpCode) {
-		this.cmpCode = cmpCode;
-	}
-
-	public Kind getKind() {
-		return kind;
-	}
-
-	public void setKind(Kind kind) {
-		this.kind = kind;
-	}
-
-	public Brand getBrand() {
-		return brand;
-	}
-
-	public void setBrand(Brand brand) {
-		this.brand = brand;
-	}
-
-	public String getDescription() {
-		return description;
+	public Component getComponent() {
+		return component;
 	}
 
-	public void setDescription(String description) {
-		this.description = description;
+	public void setComponent(Component component) {
+		this.component = component;
 	}
 
 	@Override
 	public String toString() {
 		return "Goods{" +
-				"id='" + id + '\'' +
-				", goId=" + goId +
-				", goReserve=" + goReserve +
-				", goMinPriceRMB=" + goMinPriceRMB +
-				", goMinPriceUSD=" + goMinPriceUSD +
-				", crName='" + crName + '\'' +
+				"tradeGoods=" + tradeGoods +
 				", store=" + store +
-				", cmpId=" + cmpId +
-				", cmpCode='" + cmpCode + '\'' +
-				", kind=" + kind +
-				", brand=" + brand +
-				", description='" + description + '\'' +
+				", component=" + component +
 				'}';
 	}
 }

+ 4 - 4
src/main/java/com/uas/search/service/impl/IndexServiceImpl.java

@@ -807,10 +807,10 @@ public class IndexServiceImpl implements IndexService {
 	 * @return
 	 */
 	private Term toTerm(Goods goods) {
-		if (goods.getGoId() != null) {
-			return new Term(SearchConstants.GOODS_GO_ID_FIELD, String.valueOf(goods.getGoId()));
-		} else if (goods.getCmpId() != null) {
-			return new Term(SearchConstants.GOODS_CMP_ID_FIELD, String.valueOf(goods.getCmpId()));
+		if (goods.getTradeGoods() != null) {
+			return new Term(SearchConstants.GOODS_GO_ID_FIELD, String.valueOf(goods.getTradeGoods().getId()));
+		} else if (goods.getComponent() != null) {
+			return new Term(SearchConstants.GOODS_CMP_ID_FIELD, String.valueOf(goods.getComponent().getId()));
 		}
 		return null;
 	}

+ 1 - 1
src/main/java/com/uas/search/service/impl/SearchServiceImpl.java

@@ -1220,7 +1220,7 @@ public class SearchServiceImpl implements SearchService {
 	@Override
 	public Goods getGoods(String id) {
 		return DocumentToObjectUtils.toGoods(
-				SearchUtils.getDocumentById(SearchConstants.GOODS_TABLE_NAME, SearchConstants.GOODS_ID_FIELD, id));
+				SearchUtils.getDocumentById(SearchConstants.GOODS_TABLE_NAME, SearchConstants.GOODS_GO_ID_FIELD, id));
 	}
 
 	@Override

+ 14 - 12
src/main/java/com/uas/search/util/DocumentToObjectUtils.java

@@ -134,23 +134,23 @@ public class DocumentToObjectUtils {
 			return null;
 		}
 		Goods goods = new Goods();
-		goods.setId(document.get(SearchConstants.GOODS_ID_FIELD));
-
+		TradeGoods tradeGoods = new TradeGoods();
 		if (!StringUtils.isEmpty(document.get(SearchConstants.GOODS_GO_ID_FIELD))) {
-			goods.setGoId(Long.valueOf(document.get(SearchConstants.GOODS_GO_ID_FIELD)));
+			tradeGoods.setId(Long.valueOf(document.get(SearchConstants.GOODS_GO_ID_FIELD)));
 		}
 		if (!StringUtils.isEmpty(document.get(SearchConstants.GOODS_GO_RESERVE_FIELD))) {
-			goods.setGoReserve(Double.valueOf(document.get(SearchConstants.GOODS_GO_RESERVE_FIELD)));
+			tradeGoods.setReserve(Double.valueOf(document.get(SearchConstants.GOODS_GO_RESERVE_FIELD)));
 		}
 		if (!StringUtils.isEmpty(document.get(SearchConstants.GOODS_GO_MINPRICERMB_FIELD))) {
-			goods.setGoMinPriceRMB(Double.valueOf(document.get(SearchConstants.GOODS_GO_MINPRICERMB_FIELD)));
+			tradeGoods.setMinPriceRMB(Double.valueOf(document.get(SearchConstants.GOODS_GO_MINPRICERMB_FIELD)));
 		}
 		if (!StringUtils.isEmpty(document.get(SearchConstants.GOODS_GO_MINPRICEUSD_FIELD))) {
-			goods.setGoMinPriceUSD(Double.valueOf(document.get(SearchConstants.GOODS_GO_MINPRICEUSD_FIELD)));
+			tradeGoods.setMinPriceUSD(Double.valueOf(document.get(SearchConstants.GOODS_GO_MINPRICEUSD_FIELD)));
 		}
 		if (!StringUtils.isEmpty(document.get(SearchConstants.GOODS_CRNAME_FIELD))) {
-			goods.setCrName(document.get(SearchConstants.GOODS_CRNAME_FIELD));
+			tradeGoods.setCrName(document.get(SearchConstants.GOODS_CRNAME_FIELD));
 		}
+		goods.setTradeGoods(tradeGoods);
 
 		Store store = new Store();
 		if (!StringUtils.isEmpty(document.get(SearchConstants.GOODS_ST_UUID_FIELD))) {
@@ -161,8 +161,9 @@ public class DocumentToObjectUtils {
 		}
 		goods.setStore(store);
 
-		goods.setCmpId(Long.valueOf(document.get(SearchConstants.GOODS_CMP_ID_FIELD)));
-		goods.setCmpCode(document.get(SearchConstants.GOODS_CMP_CODE_FIELD));
+		Component component = new Component();
+		component.setId(Long.valueOf(document.get(SearchConstants.GOODS_CMP_ID_FIELD)));
+		component.setCode(document.get(SearchConstants.GOODS_CMP_CODE_FIELD));
 
 		Kind kind = new Kind();
 		if (!StringUtils.isEmpty(document.get(SearchConstants.GOODS_KI_ID_FIELD))) {
@@ -175,7 +176,7 @@ public class DocumentToObjectUtils {
 		if (!StringUtils.isEmpty(document.get(SearchConstants.GOODS_KI_ISLEAF_FIELD))) {
 			kind.setIsLeaf(Short.valueOf(document.get(SearchConstants.GOODS_KI_ISLEAF_FIELD)));
 		}
-		goods.setKind(kind);
+		component.setKind(kind);
 
 		Brand brand = new Brand();
 		if (!StringUtils.isEmpty(document.get(SearchConstants.GOODS_BR_ID_FIELD))) {
@@ -184,10 +185,11 @@ public class DocumentToObjectUtils {
 		brand.setNameCn(document.get(SearchConstants.GOODS_BR_NAME_CN_FIELD));
 		brand.setNameEn(document.get(SearchConstants.GOODS_BR_NAME_EN_FIELD));
 		brand.setUuid(document.get(SearchConstants.GOODS_BR_UUID_FIELD));
-		goods.setBrand(brand);
+		component.setBrand(brand);
 		if (!StringUtils.isEmpty(document.get(SearchConstants.GOODS_CMP_DESCRIPTION_FIELD))) {
-			goods.setDescription(document.get(SearchConstants.GOODS_CMP_DESCRIPTION_FIELD));
+			component.setDescription(document.get(SearchConstants.GOODS_CMP_DESCRIPTION_FIELD));
 		}
+		goods.setComponent(component);
 		return goods;
 	}
 

+ 35 - 33
src/main/java/com/uas/search/util/ObjectToDocumentUtils.java

@@ -169,37 +169,38 @@ public class ObjectToDocumentUtils {
 	 * @return
 	 */
 	public static Document toDocument(Goods goods) {
-		if (goods == null || StringUtils.isEmpty(goods.getCmpId()) || StringUtils.isEmpty(goods.getCmpCode())
-				|| goods.getKind() == null || goods.getBrand() == null) {
+		if (goods == null || goods.getComponent() == null || StringUtils.isEmpty(goods.getComponent().getId()) ||
+				StringUtils.isEmpty(goods.getComponent().getCode()) || goods.getComponent().getKind() == null ||
+				goods.getComponent().getBrand() == null) {
 			return null;
 		}
 
 		Document document = new Document();
-		if (goods.getId() != null) {
-			document.add(new StringField(SearchConstants.GOODS_ID_FIELD, goods.getId(), Store.YES));
-		}
-		if (goods.getGoId() != null) {
-			document.add(
-					new StringField(SearchConstants.GOODS_GO_ID_FIELD, String.valueOf(goods.getGoId()), Store.YES));
-		}
-		if (goods.getGoReserve() != null) {
-			document.add(new DoubleDocValuesField(SearchConstants.GOODS_GO_RESERVE_FIELD, goods.getGoReserve()));
-			document.add(new DoubleField(SearchConstants.GOODS_GO_RESERVE_FIELD, goods.getGoReserve(), Store.YES));
-		}
-		if (goods.getGoMinPriceRMB() != null) {
-			document.add(
-					new DoubleDocValuesField(SearchConstants.GOODS_GO_MINPRICERMB_FIELD, goods.getGoMinPriceRMB()));
-			document.add(
-					new DoubleField(SearchConstants.GOODS_GO_MINPRICERMB_FIELD, goods.getGoMinPriceRMB(), Store.YES));
-		}
-		if (goods.getGoMinPriceUSD() != null) {
-			document.add(
-					new DoubleDocValuesField(SearchConstants.GOODS_GO_MINPRICEUSD_FIELD, goods.getGoMinPriceUSD()));
-			document.add(
-					new DoubleField(SearchConstants.GOODS_GO_MINPRICEUSD_FIELD, goods.getGoMinPriceUSD(), Store.YES));
-		}
-		if (goods.getCrName() != null) {
-			document.add(new TextField(SearchConstants.GOODS_CRNAME_FIELD, goods.getCrName(), Store.YES));
+		if(goods.getTradeGoods() != null){
+			TradeGoods tradeGoods = goods.getTradeGoods();
+			if (tradeGoods.getId() != null) {
+				document.add(
+						new StringField(SearchConstants.GOODS_GO_ID_FIELD, String.valueOf(tradeGoods.getId()), Store.YES));
+			}
+			if (tradeGoods.getReserve() != null) {
+				document.add(new DoubleDocValuesField(SearchConstants.GOODS_GO_RESERVE_FIELD, tradeGoods.getReserve()));
+				document.add(new DoubleField(SearchConstants.GOODS_GO_RESERVE_FIELD, tradeGoods.getReserve(), Store.YES));
+			}
+			if (tradeGoods.getMinPriceRMB() != null) {
+				document.add(
+						new DoubleDocValuesField(SearchConstants.GOODS_GO_MINPRICERMB_FIELD, tradeGoods.getMinPriceRMB()));
+				document.add(
+						new DoubleField(SearchConstants.GOODS_GO_MINPRICERMB_FIELD, tradeGoods.getMinPriceRMB(), Store.YES));
+			}
+			if (tradeGoods.getMinPriceUSD() != null) {
+				document.add(
+						new DoubleDocValuesField(SearchConstants.GOODS_GO_MINPRICEUSD_FIELD, tradeGoods.getMinPriceUSD()));
+				document.add(
+						new DoubleField(SearchConstants.GOODS_GO_MINPRICEUSD_FIELD, tradeGoods.getMinPriceUSD(), Store.YES));
+			}
+			if (tradeGoods.getCrName() != null) {
+				document.add(new TextField(SearchConstants.GOODS_CRNAME_FIELD, tradeGoods.getCrName(), Store.YES));
+			}
 		}
 
 		if (goods.getStore() != null) {
@@ -212,10 +213,11 @@ public class ObjectToDocumentUtils {
 			}
 		}
 
-		document.add(new StringField(SearchConstants.GOODS_CMP_ID_FIELD, String.valueOf(goods.getCmpId()), Store.YES));
-		document.add(new TextField(SearchConstants.GOODS_CMP_CODE_FIELD, goods.getCmpCode(), Store.YES));
+		Component component = goods.getComponent();
+		document.add(new StringField(SearchConstants.GOODS_CMP_ID_FIELD, String.valueOf(component.getId()), Store.YES));
+		document.add(new TextField(SearchConstants.GOODS_CMP_CODE_FIELD, component.getCode(), Store.YES));
 
-		Kind kind = goods.getKind();
+		Kind kind = component.getKind();
 		if (kind.getId() != null) {
 			document.add(new StringField(SearchConstants.GOODS_KI_ID_FIELD, String.valueOf(kind.getId()), Store.YES));
 		}
@@ -231,7 +233,7 @@ public class ObjectToDocumentUtils {
 					new StringField(SearchConstants.GOODS_KI_ISLEAF_FIELD, String.valueOf(kind.getLevel()), Store.YES));
 		}
 
-		Brand brand = goods.getBrand();
+		Brand brand = component.getBrand();
 		if (brand.getId() != null) {
 			document.add(new StringField(SearchConstants.GOODS_BR_ID_FIELD, String.valueOf(brand.getId()), Store.YES));
 		}
@@ -249,8 +251,8 @@ public class ObjectToDocumentUtils {
 			document.add(new StringField(SearchConstants.GOODS_BR_UUID_FIELD, brand.getUuid(), Store.YES));
 		}
 
-		if (goods.getDescription() != null) {
-			document.add(new TextField(SearchConstants.GOODS_CMP_DESCRIPTION_FIELD, goods.getDescription(), Store.YES));
+		if (component.getDescription() != null) {
+			document.add(new TextField(SearchConstants.GOODS_CMP_DESCRIPTION_FIELD, component.getDescription(), Store.YES));
 		}
 		return document;
 	}

+ 0 - 2
src/main/java/com/uas/search/util/SearchUtils.java

@@ -300,8 +300,6 @@ public class SearchUtils {
 			return SearchConstants.BRAND_ID_FIELD;
 		} else if (tableName.equals(SearchConstants.COMPONENT_TABLE_NAME)) {
 			return SearchConstants.COMPONENT_ID_FIELD;
-		} else if (tableName.equals(SearchConstants.GOODS_TABLE_NAME)) {
-			return SearchConstants.GOODS_ID_FIELD;
 		} else if (tableName.equals(SearchConstants.ORDER_TABLE_NAME)) {
 			return SearchConstants.ORDER_ID_FIELD;
 		} else if (tableName.equals(SearchConstants.ORDER_INVOICE_TABLE_NAME)) {

+ 1 - 1
src/main/webapp/WEB-INF/views/console.html

@@ -53,7 +53,7 @@
 					<li><a target="_blank">search/kind/12</a></li>
 					<li><a target="_blank">search/brand/12</a></li>
 					<li><a target="_blank">search/component/12</a></li>
-					<li><a target="_blank">search/goods/AAAevvAAHAAI1EIAAB</a></li>
+					<li><a target="_blank">search/goods/123222</a></li>
 					<li><a target="_blank">search/objects?tableName=product$brand&keyword=松下&field=br_name_cn&tokenized=true&page=1&size=10</a></li>
 					<li><a target="_blank">search/objects?tableName=product$brand&page=1&size=10</a></li>
 					<li><a target="_blank">search/allObjectsToFiles?tableName=product$brand</a></li>