Browse Source

新增客户资料索引

dongbw 8 years ago
parent
commit
5998d04f2d

+ 6 - 1
search-api-b2b/src/main/java/com/uas/search/b2b/service/SearchService.java

@@ -174,10 +174,15 @@ public interface SearchService {
 		PURC$PAGINGRELEASEDETAIL("PURC$PAGINGRELEASEDETAIL"),
 
 		/**
-		 * 供应商表
+		 * 供应商表(搜索供应商资料)
 		 */
 		PURC$VENDORS("PURC$VENDORS"),
 
+		/**
+		 * 供应商表(搜索客户资料)
+		 */
+		PURC$VENDORS_CUST("PURC$VENDOR_CUST"),
+
 		/**
 		 * 品牌表
 		 */

+ 11 - 0
search-console-b2b/src/main/java/com/uas/search/console/b2b/dao/CustmerSimpleInfoDao.java

@@ -0,0 +1,11 @@
+package com.uas.search.console.b2b.dao;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+
+import com.uas.search.console.b2b.model.CustmerSimpleInfo;
+
+public interface CustmerSimpleInfoDao
+		extends JpaRepository<CustmerSimpleInfo, Long>, JpaSpecificationExecutor<CustmerSimpleInfo> {
+
+}

+ 186 - 0
search-console-b2b/src/main/java/com/uas/search/console/b2b/model/CustmerSimpleInfo.java

@@ -0,0 +1,186 @@
+package com.uas.search.console.b2b.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.OneToOne;
+import javax.persistence.Table;
+
+/**
+ * 供应商表<br>
+ * (搜索客户资料)
+ * 
+ */
+@Table(name = "PURC$VENDORS")
+@Entity
+public class CustmerSimpleInfo {
+
+	/**
+	 * 表名
+	 */
+	public static final String TABLE_NAME = "PURC$VENDORS_CUST";
+
+	/**
+	 * 各字段列名(也是存储索引时的field名)
+	 */
+	public static final String ID_FIELD = "ve_id";
+
+	public static final String STATUS_FIELD = "ve_status";
+
+	public static final String ENTERPRISE_FIELD = "ve_myenuu";
+
+	public static final String MYUSER_FIELD = "ve_myuseruu";
+
+	public static final String VEND_FIELD = "ve_vendenuu";
+
+	public static final String VENDUSER_FIELD = "ve_venduseruu";
+
+	public static final String VENDSWITCH_FIELD = "ve_vendswitch";
+
+	public static final String CUSTSWITCH_FIELD = "ve_custswitch";
+
+	@Id
+	@Column(name = ID_FIELD)
+	private Long id;
+
+	/**
+	 * 状态
+	 */
+	@Column(name = STATUS_FIELD)
+	private String status;
+
+	/**
+	 * 我方联系人
+	 */
+	@OneToOne
+	@JoinColumn(name = MYUSER_FIELD, insertable = false, updatable = false)
+	private UserSimpleInfo myUser;
+
+	/**
+	 * 供应商联系人
+	 */
+	@OneToOne
+	@JoinColumn(name = VENDUSER_FIELD, insertable = false, updatable = false)
+	private UserSimpleInfo vendUser;
+
+	/**
+	 * 企业
+	 */
+	@OneToOne
+	@JoinColumn(name = ENTERPRISE_FIELD, insertable = false, updatable = false)
+	private EnterpriseSimpleInfo enterprise;
+
+	/**
+	 * 供应商企业
+	 */
+	@OneToOne
+	@JoinColumn(name = VEND_FIELD, insertable = false, updatable = false)
+	private EnterpriseSimpleInfo vend;
+
+	/**
+	 * 供应商开关,客户操作,因为是相对的,如果一个条件不能构成约束<br>
+	 * 1. 启用<br>
+	 * 0. 禁用
+	 */
+	@Column(name = VENDSWITCH_FIELD)
+	private Short vendswitch;
+
+	/**
+	 * 客户开关,供应商操作,因为是相对的,如果一个条件不能构成约束<br>
+	 * 1. 启用<br>
+	 * 0. 禁用
+	 */
+	@Column(name = CUSTSWITCH_FIELD)
+	private Short custswitch;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getStatus() {
+		return status;
+	}
+
+	public void setStatus(String status) {
+		this.status = status;
+	}
+
+	public UserSimpleInfo getMyUser() {
+		return myUser;
+	}
+
+	public void setMyUser(UserSimpleInfo myUser) {
+		this.myUser = myUser;
+	}
+
+	public UserSimpleInfo getVendUser() {
+		return vendUser;
+	}
+
+	public void setVendUser(UserSimpleInfo vendUser) {
+		this.vendUser = vendUser;
+	}
+
+	public EnterpriseSimpleInfo getEnterprise() {
+		return enterprise;
+	}
+
+	public void setEnterprise(EnterpriseSimpleInfo enterprise) {
+		this.enterprise = enterprise;
+	}
+
+	public EnterpriseSimpleInfo getVend() {
+		return vend;
+	}
+
+	public void setVend(EnterpriseSimpleInfo vend) {
+		this.vend = vend;
+	}
+
+	public Short getVendswitch() {
+		return vendswitch;
+	}
+
+	public void setVendswitch(Short vendswitch) {
+		this.vendswitch = vendswitch;
+	}
+
+	public Short getCustswitch() {
+		return custswitch;
+	}
+
+	public void setCustswitch(Short custswitch) {
+		this.custswitch = custswitch;
+	}
+
+	/**
+	 * 获取所有可以搜索的字段列名(索引的field名)
+	 * 
+	 * @return 可以搜索的字段列名
+	 */
+	public static List<String> getKeywordFields() {
+		List<String> fields = new ArrayList<>();
+		fields.add(ENTERPRISE_FIELD);
+		fields.add(MYUSER_FIELD);
+		// fields.add(VEND_FIELD);
+		// fields.add(VENDUSER_FIELD);
+		return fields;
+	}
+
+	@Override
+	public String toString() {
+		return "VendorSimpleInfo [id=" + id + ", status=" + status + ", myUser=" + myUser + ", vendUser=" + vendUser
+				+ ", enterprise=" + enterprise + ", vend=" + vend + ", vendswitch=" + vendswitch + ", custswitch="
+				+ custswitch + "]";
+	}
+
+
+}

+ 3 - 2
search-console-b2b/src/main/java/com/uas/search/console/b2b/model/VendorSimpleInfo.java

@@ -12,6 +12,7 @@ import javax.persistence.Table;
 
 /**
  * 供应商表<br>
+ * (搜索供应商资料)
  * 
  */
 @Table(name = VendorSimpleInfo.TABLE_NAME)
@@ -167,8 +168,8 @@ public class VendorSimpleInfo {
 	 */
 	public static List<String> getKeywordFields() {
 		List<String> fields = new ArrayList<>();
-		fields.add(ENTERPRISE_FIELD);
-		fields.add(MYUSER_FIELD);
+		// fields.add(ENTERPRISE_FIELD);
+		// fields.add(MYUSER_FIELD);
 		fields.add(VEND_FIELD);
 		fields.add(VENDUSER_FIELD);
 		return fields;

+ 4 - 0
search-console-b2b/src/main/java/com/uas/search/console/b2b/util/ClassAndTableNameUtils.java

@@ -14,6 +14,7 @@ import org.springframework.data.jpa.repository.JpaRepository;
 import com.uas.search.b2b.exception.SearchException;
 import com.uas.search.b2b.service.SearchService.Table_name;
 import com.uas.search.console.b2b.core.util.ContextUtils;
+import com.uas.search.console.b2b.dao.CustmerSimpleInfoDao;
 import com.uas.search.console.b2b.dao.DeputyOrderSimpleInfoDao;
 import com.uas.search.console.b2b.dao.EnterpriseSearchSimpleInfoDao;
 import com.uas.search.console.b2b.dao.ErpSaleTenderSimpleInfoDao;
@@ -49,6 +50,7 @@ import com.uas.search.console.b2b.dao.SaleArcheckSimpleInfoDao;
 import com.uas.search.console.b2b.dao.SaleQuotationSimpleInfoDao;
 import com.uas.search.console.b2b.dao.SaleSendSimpleInfoDao;
 import com.uas.search.console.b2b.dao.VendorSimpleInfoDao;
+import com.uas.search.console.b2b.model.CustmerSimpleInfo;
 import com.uas.search.console.b2b.model.DeputyOrderSimpleInfo;
 import com.uas.search.console.b2b.model.EnterpriseSearchSimpleInfo;
 import com.uas.search.console.b2b.model.ErpSaleTenderSimpleInfo;
@@ -139,6 +141,7 @@ public class ClassAndTableNameUtils {
 		entityClasses.add(DeputyOrderSimpleInfo.class);
 		entityClasses.add(PagingReleaseDetailSimpleInfo.class);
 		entityClasses.add(VendorSimpleInfo.class);
+		entityClasses.add(CustmerSimpleInfo.class);
 		entityClasses.add(ProductBrandSimpleInfo.class);
 		entityClasses.add(UserSpaceDetailSimpleInfo.class);
 		entityClasses.add(PurcInquirySimpleInfo.class);
@@ -179,6 +182,7 @@ public class ClassAndTableNameUtils {
 		entityDaoClasses.add(DeputyOrderSimpleInfoDao.class);
 		entityDaoClasses.add(PagingReleaseDetailSimpleInfoDao.class);
 		entityDaoClasses.add(VendorSimpleInfoDao.class);
+		entityDaoClasses.add(CustmerSimpleInfoDao.class);
 		entityDaoClasses.add(ProductBrandSimpleInfoDao.class);
 		entityDaoClasses.add(UserSpaceDetailSimpleInfoDao.class);
 		entityDaoClasses.add(PurcInquirySimpleInfoDao.class);

+ 56 - 0
search-console-b2b/src/main/java/com/uas/search/console/b2b/util/DocumentToObjectUtils.java

@@ -11,6 +11,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.uas.search.b2b.exception.SearchException;
 import com.uas.search.b2b.service.SearchService.Table_name;
 import com.uas.search.console.b2b.model.BrandSimpleInfo;
+import com.uas.search.console.b2b.model.CustmerSimpleInfo;
 import com.uas.search.console.b2b.model.DeputyOrderSimpleInfo;
 import com.uas.search.console.b2b.model.EnterpriseSearchSimpleInfo;
 import com.uas.search.console.b2b.model.EnterpriseSimpleInfo;
@@ -155,6 +156,8 @@ public class DocumentToObjectUtils {
 			return (T) toPagingReleaseDetailSimpleInfo(document);
 		} else if (clazz == VendorSimpleInfo.class) {
 			return (T) toVendorSimpleInfo(document);
+		} else if (clazz == CustmerSimpleInfo.class) {
+			return (T) toCustmerSimpleInfo(document);
 		} else if (clazz == ProductBrandSimpleInfo.class) {
 			return (T) toProductBrandSimpleInfo(document);
 		} else if (clazz == UserSpaceDetailSimpleInfo.class) {
@@ -1927,6 +1930,59 @@ public class DocumentToObjectUtils {
 		return vendorSimpleInfo;
 	}
 
+	/**
+	 * 将Document转换成CustmerSimpleInfo对象
+	 * 
+	 * @param document
+	 * @return
+	 */
+	private static CustmerSimpleInfo toCustmerSimpleInfo(Document document) {
+		if (document == null) {
+			return null;
+		}
+		Table_name tableName = ClassAndTableNameUtils.toTableName(CustmerSimpleInfo.class);
+		CustmerSimpleInfo custmerSimpleInfo = new CustmerSimpleInfo();
+		custmerSimpleInfo.setId(
+				Long.valueOf(document.get(ClassAndTableNameUtils.combineField(tableName, CustmerSimpleInfo.ID_FIELD))));
+		String status = document.get(ClassAndTableNameUtils.combineField(tableName, CustmerSimpleInfo.STATUS_FIELD));
+		if (status != null) {
+			custmerSimpleInfo.setStatus(status);
+		}
+		if (null != document.get(ClassAndTableNameUtils.combineField(tableName, CustmerSimpleInfo.ENTERPRISE_FIELD))) {
+			custmerSimpleInfo.setEnterprise(JSONObject.parseObject(
+					document.get(ClassAndTableNameUtils.combineField(tableName, CustmerSimpleInfo.ENTERPRISE_FIELD)),
+					EnterpriseSimpleInfo.class));
+		}
+		if (null != document.get(ClassAndTableNameUtils.combineField(tableName, CustmerSimpleInfo.VEND_FIELD))) {
+			custmerSimpleInfo.setVend(JSONObject.parseObject(
+					document.get(ClassAndTableNameUtils.combineField(tableName, CustmerSimpleInfo.VEND_FIELD)),
+					EnterpriseSimpleInfo.class));
+		}
+		if (null != document.get(ClassAndTableNameUtils.combineField(tableName, CustmerSimpleInfo.MYUSER_FIELD))) {
+			custmerSimpleInfo.setMyUser(JSONObject.parseObject(
+					document.get(ClassAndTableNameUtils.combineField(tableName, CustmerSimpleInfo.MYUSER_FIELD)),
+					UserSimpleInfo.class));
+		}
+		if (null != document.get(ClassAndTableNameUtils.combineField(tableName, CustmerSimpleInfo.VENDUSER_FIELD))) {
+			custmerSimpleInfo.setVendUser(JSONObject.parseObject(
+					document.get(ClassAndTableNameUtils.combineField(tableName, CustmerSimpleInfo.VENDUSER_FIELD)),
+					UserSimpleInfo.class));
+		}
+		if (null != document.get(ClassAndTableNameUtils.combineField(tableName, CustmerSimpleInfo.CUSTSWITCH_FIELD))) {
+			custmerSimpleInfo.setCustswitch(Short.valueOf(
+					document.get(ClassAndTableNameUtils.combineField(tableName, CustmerSimpleInfo.CUSTSWITCH_FIELD))));
+		} else {
+			custmerSimpleInfo.setCustswitch((short) 1);
+		}
+		if (null != document.get(ClassAndTableNameUtils.combineField(tableName, CustmerSimpleInfo.VENDSWITCH_FIELD))) {
+			custmerSimpleInfo.setVendswitch(Short.valueOf(
+					document.get(ClassAndTableNameUtils.combineField(tableName, CustmerSimpleInfo.VENDSWITCH_FIELD))));
+		} else {
+			custmerSimpleInfo.setVendswitch((short) 1);
+		}
+		return custmerSimpleInfo;
+	}
+
 	/**
 	 * 将Document转换成ProdctBrandSimpleInfo对象
 	 * 

+ 59 - 0
search-console-b2b/src/main/java/com/uas/search/console/b2b/util/ObjectToDocumentUtils.java

@@ -13,6 +13,7 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.uas.platform.core.model.Constant;
 import com.uas.search.b2b.service.SearchService.Table_name;
+import com.uas.search.console.b2b.model.CustmerSimpleInfo;
 import com.uas.search.console.b2b.model.DeputyOrderSimpleInfo;
 import com.uas.search.console.b2b.model.EnterpriseSearchSimpleInfo;
 import com.uas.search.console.b2b.model.ErpSaleTenderSimpleInfo;
@@ -131,6 +132,8 @@ public class ObjectToDocumentUtils {
 			return toDocument((PagingReleaseDetailSimpleInfo) object);
 		} else if (object instanceof VendorSimpleInfo) {
 			return toDocument((VendorSimpleInfo) object);
+		} else if (object instanceof CustmerSimpleInfo) {
+			return toDocument((CustmerSimpleInfo) object);
 		} else if (object instanceof ProductBrandSimpleInfo) {
 			return toDocument((ProductBrandSimpleInfo) object);
 		} else if (object instanceof UserSpaceDetailSimpleInfo) {
@@ -2070,6 +2073,62 @@ public class ObjectToDocumentUtils {
 		return document;
 	}
 
+	/**
+	 * 将CustmerSimpleInfo 转换成Document
+	 * 
+	 * @param vendorSimpleInfo
+	 * @return
+	 */
+	public static Document toDocument(CustmerSimpleInfo custmerSimpleInfo) {
+		if (custmerSimpleInfo == null || custmerSimpleInfo.getId() == null) {
+			return null;
+		}
+		Table_name tableName = ClassAndTableNameUtils.toTableName(CustmerSimpleInfo.class);
+		Document document = new Document();
+		// 不能用LongField,否则后续实时更新索引时,方法updateDocument(new Term("", ""),
+		// doc)无法根据id进行更新
+		document.add(new StringField(ClassAndTableNameUtils.combineField(tableName, CustmerSimpleInfo.ID_FIELD),
+				String.valueOf(custmerSimpleInfo.getId()), Store.YES));
+		if (null != custmerSimpleInfo.getStatus()) {
+			document.add(new StringField(ClassAndTableNameUtils.combineField(tableName, CustmerSimpleInfo.STATUS_FIELD),
+					String.valueOf(custmerSimpleInfo.getStatus()), Store.YES));
+		}
+		if (null != custmerSimpleInfo.getEnterprise()) {
+			document.add(
+					new TextField(ClassAndTableNameUtils.combineField(tableName, CustmerSimpleInfo.ENTERPRISE_FIELD),
+							JSON.toJSONString(custmerSimpleInfo.getEnterprise()), Store.YES));
+		}
+		if (null != custmerSimpleInfo.getVend()) {
+			document.add(new TextField(ClassAndTableNameUtils.combineField(tableName, CustmerSimpleInfo.VEND_FIELD),
+					JSON.toJSONString(custmerSimpleInfo.getVend()), Store.YES));
+		}
+		if (null != custmerSimpleInfo.getMyUser()) {
+			document.add(new StringField(ClassAndTableNameUtils.combineField(tableName, CustmerSimpleInfo.MYUSER_FIELD),
+					JSON.toJSONString(custmerSimpleInfo.getMyUser()), Store.YES));
+		}
+		if (null != custmerSimpleInfo.getVendUser()) {
+			document.add(
+					new StringField(ClassAndTableNameUtils.combineField(tableName, CustmerSimpleInfo.VENDUSER_FIELD),
+							JSON.toJSONString(custmerSimpleInfo.getVendUser()), Store.YES));
+		}
+		if (null != custmerSimpleInfo.getCustswitch()) {
+			document.add(
+					new StringField(ClassAndTableNameUtils.combineField(tableName, CustmerSimpleInfo.CUSTSWITCH_FIELD),
+							JSON.toJSONString(custmerSimpleInfo.getCustswitch()), Store.YES));
+		}
+		if (null != custmerSimpleInfo.getVendswitch()) {
+			document.add(
+					new StringField(ClassAndTableNameUtils.combineField(tableName, CustmerSimpleInfo.VENDSWITCH_FIELD),
+							JSON.toJSONString(custmerSimpleInfo.getVendswitch()), Store.YES));
+		}
+
+		// 排序字段
+		document.add(new NumericDocValuesField(
+				ClassAndTableNameUtils.combineField(tableName, CustmerSimpleInfo.ID_FIELD), custmerSimpleInfo.getId()));
+
+		return document;
+	}
+
 	/**
 	 * 将ProductBrandSimpleInfo 转换成Document
 	 *