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

搜索服务dubbo配置

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@6443 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
sunyj преди 9 години
родител
ревизия
17999478f3

+ 25 - 0
pom.xml

@@ -266,6 +266,31 @@
 			<groupId>com.uas.account</groupId>
 			<artifactId>account-common</artifactId>
 		</dependency>
+
+		<!-- dubbo -->
+		<dependency>
+			<groupId>com.alibaba</groupId>
+			<artifactId>dubbo</artifactId>
+			<exclusions>
+				<exclusion>
+					<groupId>javax.servlet</groupId>
+					<artifactId>javax.servlet-api</artifactId>
+				</exclusion>
+				<exclusion>
+					<groupId>org.apache.httpcomponents</groupId>
+					<artifactId>httpcore</artifactId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+		<dependency>
+			<groupId>com.github.sgroschupf</groupId>
+			<artifactId>zkclient</artifactId>
+		</dependency>
+		<!-- search on dubbo -->
+		<dependency>
+			<groupId>com.uas.search</groupId>
+			<artifactId>search-api-b2b</artifactId>
+		</dependency>
 	</dependencies>
 	<build>
 		<finalName>platform-b2b</finalName>

+ 33 - 0
src/main/java/com/uas/platform/b2b/search/SearchController.java

@@ -0,0 +1,33 @@
+package com.uas.platform.b2b.search;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import com.uas.platform.b2b.model.PurchaseOrder;
+import com.uas.search.b2b.model.PageParams;
+import com.uas.search.b2b.model.SPage;
+
+/**
+ * 搜索请求
+ * 
+ * @author sunyj
+ * @since 2016年11月11日 上午10:32:32
+ */
+@Controller
+@RequestMapping("/search")
+public class SearchController {
+
+	@Autowired
+	private SearchService searchService;
+
+	@RequestMapping("/purchaseOrder")
+	@ResponseBody
+	public SPage<PurchaseOrder> searchPurchaseOrderIds(String keyword, PageParams pageParams, Short status) {
+		return searchService.searchPurchaseOrderIds(keyword, pageParams, status);
+	}
+
+	// TODO hejq:其他表
+
+}

+ 27 - 0
src/main/java/com/uas/platform/b2b/search/SearchService.java

@@ -0,0 +1,27 @@
+package com.uas.platform.b2b.search;
+
+import com.uas.platform.b2b.model.PurchaseOrder;
+import com.uas.search.b2b.model.PageParams;
+import com.uas.search.b2b.model.SPage;
+
+/**
+ * 搜索接口
+ * 
+ * @author sunyj
+ * @since 2016年11月11日 上午10:39:15
+ */
+public interface SearchService {
+
+	/**
+	 * 买家采购订单搜索
+	 * 
+	 * @param keyword
+	 *            搜索词
+	 * @param pageParams
+	 *            分页信息
+	 * @param status
+	 *            状态
+	 * @return 订单数据
+	 */
+	public SPage<PurchaseOrder> searchPurchaseOrderIds(String keyword, PageParams pageParams, Short status);
+}

+ 59 - 0
src/main/java/com/uas/platform/b2b/search/SearchServiceImpl.java

@@ -0,0 +1,59 @@
+package com.uas.platform.b2b.search;
+
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.uas.platform.b2b.dao.PurchaseOrderDao;
+import com.uas.platform.b2b.model.PurchaseOrder;
+import com.uas.search.b2b.model.PageParams;
+import com.uas.search.b2b.model.SPage;
+import com.uas.search.b2b.service.SearchService.Table_name;
+
+/**
+ * 搜索实现
+ * 
+ * @author sunyj
+ * @since 2016年11月11日 上午10:43:25
+ */
+@Service
+public class SearchServiceImpl implements com.uas.platform.b2b.search.SearchService {
+
+	@Autowired
+	private com.uas.search.b2b.service.SearchService searchService;
+
+	@Autowired
+	private PurchaseOrderDao purchaseOrderDao;
+
+	@Override
+	public SPage<PurchaseOrder> searchPurchaseOrderIds(String keyword, PageParams pageParams, Short status) {
+		SPage<Long> idsPage = searchService.searchIds(keyword, Table_name.PURC$ORDERS, pageParams, status);
+		return toSPage(idsPage, purchaseOrderDao.findAll(idsPage.getContent()));
+	}
+
+	/**
+	 * 将id的SPage信息、数据合并
+	 * 
+	 * @param idsPage
+	 *            id的SPage信息
+	 * @param content
+	 *            数据
+	 * @return 合并后的结果
+	 */
+	private <T> SPage<T> toSPage(SPage<Long> idsPage, List<T> content) {
+		if (idsPage == null) {
+			return null;
+		}
+		SPage<T> result = new SPage<>();
+		result.setContent(content);
+		result.setFirst(idsPage.isFirst());
+		result.setLast(idsPage.isLast());
+		result.setPage(idsPage.getPage());
+		result.setSize(idsPage.getSize());
+		result.setTotalElement(idsPage.getTotalElement());
+		result.setTotalPage(idsPage.getTotalPage());
+		return result;
+	}
+
+}

+ 3 - 0
src/main/resources/dev/dubbo.properties

@@ -0,0 +1,3 @@
+zk.url=zookeeper://10.10.100.11:2181
+dubbo.owner=test
+dubbo.group=test

+ 3 - 0
src/main/resources/prod/dubbo.properties

@@ -0,0 +1,3 @@
+zk.url=zookeeper://10.10.100.11:2181
+dubbo.owner=prod
+dubbo.group=prod

+ 16 - 0
src/main/resources/spring/dubbo-consumer.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
+	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+	http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
+
+	<dubbo:application name="search_b2b_consumer" owner="${dubbo.owner}" />
+
+	<dubbo:registry address="${zk.url}" check="false" />
+
+	<!-- B2B搜索服务 -->
+	<dubbo:reference id="searchService"
+		interface="com.uas.search.b2b.service.SearchService" timeout="10000"
+		group="${dubbo.group}" />
+
+</beans>

+ 3 - 0
src/main/resources/test/dubbo.properties

@@ -0,0 +1,3 @@
+zk.url=zookeeper://10.10.100.11:2181
+dubbo.owner=test
+dubbo.group=test