From f1016fdc979107dde7b4bf4570d04758043da8e8 Mon Sep 17 00:00:00 2001
From: yujian <yujian>
Date: 星期五, 15 三月 2019 17:07:57 +0800
Subject: [PATCH] 首页-消息-猜你喜欢改为根据用户设备推荐

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/UserMsgController.java |   37 +++++++++++++++++++++----------------
 1 files changed, 21 insertions(+), 16 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/UserMsgController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/UserMsgController.java
index 59b0c0c..f83d1dc 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/UserMsgController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/UserMsgController.java
@@ -295,7 +295,7 @@
 		return builder;
 	}
 
-	private void addRecommendGoods(Long uid, String imei, String idfa) {
+	private void addRecommendGoods(Long uid, String device, String imei, String idfa) {
 		TaoBaoSearchResult result = TaoKeApiUtil.guessDeviceLike(1, 50, imei, idfa);
 		if (result != null && result.getTaoBaoGoodsBriefs() != null) {
 			for (int i = 0; i < result.getTaoBaoGoodsBriefs().size(); i++) {
@@ -326,7 +326,7 @@
 					}
 				}
 				try {
-					recommendUserGoodsService.addRecommend(uid, "", goodsList);
+					recommendUserGoodsService.addRecommend(uid, device, "", goodsList);
 				} catch (RecommendUserGoodsException e) {
 					e.printStackTrace();
 				}
@@ -334,7 +334,7 @@
 		}
 	}
 
-	private void addRecommendGoods(Long uid) {
+	private void addRecommendGoods(Long uid, String device) {
 		List<QualityFactory> qfList = qualityFactoryService.listByMinSalesCountOrderByCreateTimeDesc(10000, 1, 20);
 		if (qfList != null && qfList != null) {
 			for (int i = 0; i < qfList.size(); i++) {
@@ -365,7 +365,7 @@
 					}
 				}
 				try {
-					recommendUserGoodsService.addRecommend(uid, "", goodsList);
+					recommendUserGoodsService.addRecommend(uid, device, "", goodsList);
 				} catch (RecommendUserGoodsException e) {
 					e.printStackTrace();
 				}
@@ -383,15 +383,18 @@
 	 */
 	@RequestMapping(value = "getHomeMsgList", method = RequestMethod.POST)
 	public void getHomeMsgList(AcceptData acceptData, Long uid, int page, HttpSession session, PrintWriter out) {
-		if (uid == null) {
-			out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
+		
+		String device = acceptData.getDevice();
+		if (device == null || device.trim().length() == 0) {
+			out.print(JsonUtil.loadFalseResult("璁惧鍙蜂笉鑳戒负绌�"));
 			return;
 		}
-
+		
 		if (page == 1) {
 			boolean canAdd = false;
 			int hour = Calendar.getInstance().get(Calendar.HOUR);
-			RecommendUserGoods goods = recommendUserGoodsService.getLatestRecommendUserGoods(uid);
+			RecommendUserGoods goods = recommendUserGoodsService.getLatestRecommendUserGoodsByDevice(device);
+			
 			if (goods == null) {
 				canAdd = true;
 			} else {
@@ -401,30 +404,32 @@
 				}
 			}
 
-			String key = "recommend-goods-user-" + uid;
+			//String key = "recommend-goods-user-" + uid;
+			String key = "recommend-goods-user-" + device;
 			if (Constant.IS_OUTNET) {
 				if (canAdd && StringUtil.isNullOrEmpty(redisManager.getCommonString(key))) {
 					if (Constant.IS_OUTNET)
 						redisManager.cacheCommonString(key, "1", 20);
 					if (hour < 12)
-						addRecommendGoods(uid);
+						addRecommendGoods(uid, device);
 					else
-						addRecommendGoods(uid, acceptData.getImei(), acceptData.getIdfa());
+						addRecommendGoods(uid, device, acceptData.getImei(), acceptData.getIdfa());
 					session.removeAttribute("recommendgoods");
 				}
 			} else {
 				if (canAdd) {
 					if (hour < 12)
-						addRecommendGoods(uid);
+						addRecommendGoods(uid, device);
 					else
-						addRecommendGoods(uid, acceptData.getImei(), acceptData.getIdfa());
+						addRecommendGoods(uid, device, acceptData.getImei(), acceptData.getIdfa());
 				}
 			}
 		}
 
 		List<UserHomeMsgVO> volist = new ArrayList<>();
-		List<RecommendUserGoods> list = recommendUserGoodsService.listRecommend(uid, page, Constant.PAGE_SIZE);
-		long count = recommendUserGoodsService.countRecommend(uid);//
+		
+		List<RecommendUserGoods> list = recommendUserGoodsService.listRecommendGoodsByDevice(device, page, Constant.PAGE_SIZE);
+		long count = recommendUserGoodsService.countRecommendGoodsByDevice(device);
 
 		Date now = new Date();
 		for (RecommendUserGoods goods : list) {
@@ -486,7 +491,7 @@
 
 		JSONObject root = new JSONObject();
 		root.put("msgList", new Gson().toJson(volist));
-		if (page == 1) {
+		if (page == 1 && uid != null) {
 			UserMsgUnReadNum num = userMsgReadStateService.getReadStateByUid(uid);
 			UserSystemMsg usm = userSystemMsgService.getLatestUserSystemMsg(uid);
 			if (usm != null)

--
Gitblit v1.8.0