Просмотр исходного кода

新增: 移动端 搜索记录获取

wangdy 8 лет назад
Родитель
Сommit
195b562540

+ 9 - 0
src/main/java/com/uas/platform/b2c/common/search/controller/SearcherController.java

@@ -1,6 +1,7 @@
 package com.uas.platform.b2c.common.search.controller;
 
 import com.uas.platform.b2c.common.account.model.User;
+import com.uas.platform.b2c.common.search.dao.SearchHistoryDao;
 import com.uas.platform.b2c.common.search.service.SearcherService;
 import com.uas.platform.b2c.core.support.SystemSession;
 import com.uas.platform.b2c.prod.commodity.service.GoodsService;
@@ -61,6 +62,9 @@ public class SearcherController {
 	@Autowired
 	private StockInOutHistService stockInOutHistService;
 
+	@Autowired
+	private SearchHistoryDao searchHistoryDao;
+
 	/**
 	 * 作搜索展示跳转
 	 * 
@@ -343,4 +347,9 @@ public class SearcherController {
 		return result;
 	}
 
+	@RequestMapping(value = "/searchHistory", method = RequestMethod.GET)
+	@ResponseBody
+	public List<String> getSearchHistory(){
+		return searchHistoryDao.findKeywordByUserUUAndUserEnuu(SystemSession.getUser().getUserUU(),SystemSession.getUser().getEnterprise() != null ?SystemSession.getUser().getEnterprise().getUu():null);
+	}
 }

+ 19 - 0
src/main/java/com/uas/platform/b2c/common/search/dao/SearchHistoryDao.java

@@ -0,0 +1,19 @@
+package com.uas.platform.b2c.common.search.dao;
+
+import com.uas.platform.b2c.common.search.model.SearchHistory;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface SearchHistoryDao extends JpaSpecificationExecutor<SearchHistory>,JpaRepository<SearchHistory,Long>{
+    /**
+     * 通过uuid和enuu查找记录
+     * @return
+     */
+    List<String> findKeywordByUserUUAndUserEnuu(Long userUU,Long userEnuu);
+
+    List<SearchHistory> findByKeywordAndUserUUAndUserEnuu(String keyword,Long userUU,Long userEnuu);
+}

+ 86 - 0
src/main/java/com/uas/platform/b2c/common/search/model/SearchHistory.java

@@ -0,0 +1,86 @@
+package com.uas.platform.b2c.common.search.model;
+
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 搜索记录
+ */
+@Entity
+@Table(name = "sec$searchHis")
+public class SearchHistory implements Serializable{
+
+    /**
+     * ID
+     */
+    @Id
+    @GeneratedValue
+    @Column(name = "id")
+    private Long id;
+
+    /**
+     * 个人uu
+     */
+    @Column(name = "user_uu")
+    private Long userUU;
+
+    /**
+     * 企业uu
+     */
+    @Column(name = "user_enuu")
+    private Long userEnuu;
+
+    /**
+     * 关键词
+     */
+    @Column(name = "keyword")
+    private String keyword;
+
+    /**
+     * 搜索时间
+     */
+    @Column(name = "searchtime")
+    private Date searchTime;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getUserUU() {
+        return userUU;
+    }
+
+    public void setUserUU(Long userUU) {
+        this.userUU = userUU;
+    }
+
+    public Long getUserEnuu() {
+        return userEnuu;
+    }
+
+    public void setUserEnuu(Long userEnuu) {
+        this.userEnuu = userEnuu;
+    }
+
+    public String getKeyword() {
+        return keyword;
+    }
+
+    public void setKeyword(String keyword) {
+        this.keyword = keyword;
+    }
+
+    public Date getSearchTime() {
+        return searchTime;
+    }
+
+    public void setSearchTime(Date searchTime) {
+        this.searchTime = searchTime;
+    }
+}

+ 1 - 1
src/main/java/com/uas/platform/b2c/common/search/service/SearcherService.java

@@ -58,7 +58,7 @@ public interface SearcherService {
 	 * @throws InterruptedException
 	 * @throws IOException
 	 */
-	public ModelMap searchComponentGoods(String keyword, PageParams page);
+	public ModelMap searchComponentGoods(String keyword, PageParams page , HttpServletRequest request);
     /**
      * 批次搜索数量统计
      *

+ 23 - 1
src/main/java/com/uas/platform/b2c/common/search/service/impl/SearcherServiceImpl.java

@@ -1,8 +1,11 @@
 package com.uas.platform.b2c.common.search.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
+import com.uas.platform.b2c.common.search.dao.SearchHistoryDao;
+import com.uas.platform.b2c.common.search.model.SearchHistory;
 import com.uas.platform.b2c.common.search.rpc.service.SearchService;
 import com.uas.platform.b2c.common.search.service.SearcherService;
+import com.uas.platform.b2c.core.support.SystemSession;
 import com.uas.platform.b2c.core.utils.FastjsonUtils;
 import com.uas.platform.b2c.prod.product.brand.dao.BrandDao;
 import com.uas.platform.b2c.prod.product.component.dao.ComponentGoodsDao;
@@ -53,6 +56,9 @@ public class SearcherServiceImpl implements SearcherService {
 	@Autowired
 	private BrandDao brandDao;
 
+	@Autowired
+	private SearchHistoryDao searchHistoryDao;
+
 	private Logger logger = LoggerFactory.getLogger(getClass());
 	private final DeviceResolver deviceResolver = new LiteDeviceResolver();
 
@@ -142,7 +148,23 @@ public class SearcherServiceImpl implements SearcherService {
 	 */
 	@SuppressWarnings("unchecked")
 	@Override
-	public ModelMap searchComponentGoods(String keyword, PageParams page) {
+	public ModelMap searchComponentGoods(String keyword, PageParams page , HttpServletRequest request) {
+		if (this.deviceResolver.resolveDevice(request).isMobile()) {
+			if (null != SystemSession.getUser() && null!= SystemSession.getUser().getUserUU()){
+				SearchHistory searchHistory = null;
+				List<SearchHistory> searchHistories = searchHistoryDao.findByKeywordAndUserUUAndUserEnuu(keyword,SystemSession.getUser().getUserUU(),SystemSession.getUser().getEnterprise() != null ?SystemSession.getUser().getEnterprise().getUu():null);
+				if (searchHistories.size()>0){
+					searchHistory = searchHistories.get(0);
+				}else {
+					searchHistory = new SearchHistory();
+				}
+				searchHistory.setKeyword(keyword);
+				searchHistory.setSearchTime(new Date(System.currentTimeMillis()));
+				searchHistory.setUserUU(SystemSession.getUser().getUserUU());
+				searchHistory.setUserEnuu(SystemSession.getUser().getEnterprise() != null ?SystemSession.getUser().getEnterprise().getUu():null);
+				searchHistoryDao.save(searchHistory);
+			}
+		}
 		ModelMap map = new ModelMap();
 		Map<String,Object> results = null;
 		//Map<String, Object> results = new HashMap<>();

+ 2 - 2
src/main/java/com/uas/platform/b2c/prod/product/component/api/ComponentController.java

@@ -247,8 +247,8 @@ public class ComponentController {
 	 * 搜索关键字的型号,插入库存
 	 */
 	@RequestMapping(value = "/search/compGoods", method = RequestMethod.GET)
-	public ModelMap getCompGoodsBySearch(PageParams params, String keyword) {
-		return componentService.getCompGoodsBySearch(params, keyword);
+	public ModelMap getCompGoodsBySearch(PageParams params, String keyword, HttpServletRequest request) {
+		return componentService.getCompGoodsBySearch(params, keyword, request);
 	}
 
 	/**

+ 2 - 1
src/main/java/com/uas/platform/b2c/prod/product/component/service/ComponentService.java

@@ -10,6 +10,7 @@ import com.uas.platform.core.model.PageParams;
 import org.springframework.data.domain.Page;
 import org.springframework.ui.ModelMap;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.List;
 import java.util.Map;
 
@@ -186,7 +187,7 @@ public interface ComponentService {
 	 * @param keyword 关键词
 	 * @return 器件信息
 	 */
-	public ModelMap getCompGoodsBySearch(PageParams params, String keyword);
+	public ModelMap getCompGoodsBySearch(PageParams params, String keyword, HttpServletRequest request);
 
 	/**
 	 * 批量修改器件类目

+ 3 - 2
src/main/java/com/uas/platform/b2c/prod/product/component/service/impl/ComponentServiceImpl.java

@@ -48,6 +48,7 @@ import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
+import javax.servlet.http.HttpServletRequest;
 import java.util.*;
 
 @Service
@@ -447,14 +448,14 @@ public class ComponentServiceImpl implements ComponentService {
 	}
 
 	@Override
-	public ModelMap getCompGoodsBySearch(com.uas.platform.core.model.PageParams params, String keyword) {
+	public ModelMap getCompGoodsBySearch(com.uas.platform.core.model.PageParams params, String keyword , HttpServletRequest request) {
 		int page = params.getPage();
 		if (page > 100) {
 			page = 100;
 		}
 		params.setPage(page);
 
-		ModelMap map = searchServiceMap.searchComponentGoods(keyword, params);//.searchComponent(keyword, params);
+		ModelMap map = searchServiceMap.searchComponentGoods(keyword, params, request);//.searchComponent(keyword, params);
 		// 能让用户查看的只能是Constant.PAGEMAX * params.getCount(),防止爬虫
 		int total = ((Integer)map.get("total")).intValue();
 		int expose = total;