Browse Source

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

wangdy 8 years ago
parent
commit
796bd9311c

+ 8 - 2
src/main/java/com/uas/platform/b2c/common/search/controller/SearcherController.java

@@ -2,6 +2,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.model.SearchHistory;
 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;
@@ -349,7 +350,12 @@ public class SearcherController {
 
 	@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);
+	public List<SearchHistory> getSearchHistory(HttpServletRequest request){
+		SystemSession.setUser((User)request.getSession().getAttribute("user"));
+		if (null == SystemSession.getUser()){
+			return null;
+		}else{
+			return searchHistoryDao.findByUserUUAndUserEnuuOrderBySearchTimeDesc(SystemSession.getUser().getUserUU(),SystemSession.getUser().getEnterprise() != null ?SystemSession.getUser().getEnterprise().getUu():null);
+		}
 	}
 }

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

@@ -13,7 +13,7 @@ public interface SearchHistoryDao extends JpaSpecificationExecutor<SearchHistory
      * 通过uuid和enuu查找记录
      * @return
      */
-    List<String> findKeywordByUserUUAndUserEnuu(Long userUU,Long userEnuu);
+    List<SearchHistory> findByUserUUAndUserEnuuOrderBySearchTimeDesc(Long userUU,Long userEnuu);
 
     List<SearchHistory> findByKeywordAndUserUUAndUserEnuu(String keyword,Long userUU,Long userEnuu);
 }

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

@@ -1,6 +1,7 @@
 package com.uas.platform.b2c.common.search.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
+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.model.SearchHistory;
 import com.uas.platform.b2c.common.search.rpc.service.SearchService;
@@ -150,6 +151,7 @@ public class SearcherServiceImpl implements SearcherService {
 	@Override
 	public ModelMap searchComponentGoods(String keyword, PageParams page , HttpServletRequest request) {
 		if (this.deviceResolver.resolveDevice(request).isMobile()) {
+			SystemSession.setUser((User)request.getSession().getAttribute("user"));
 			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);
@@ -163,6 +165,10 @@ public class SearcherServiceImpl implements SearcherService {
 				searchHistory.setUserUU(SystemSession.getUser().getUserUU());
 				searchHistory.setUserEnuu(SystemSession.getUser().getEnterprise() != null ?SystemSession.getUser().getEnterprise().getUu():null);
 				searchHistoryDao.save(searchHistory);
+				searchHistories = searchHistoryDao.findByUserUUAndUserEnuuOrderBySearchTimeDesc(SystemSession.getUser().getUserUU(),SystemSession.getUser().getEnterprise() != null ?SystemSession.getUser().getEnterprise().getUu():null);
+				if (searchHistories.size()>10){
+					searchHistoryDao.delete(searchHistories.subList(10,searchHistories.size()));
+				}
 			}
 		}
 		ModelMap map = new ModelMap();