From 8cb7ec4a35a38ae91d0eed17cde711e81d2b2bbf Mon Sep 17 00:00:00 2001
From: yujian <yujian>
Date: 星期二, 14 五月 2019 11:37:49 +0800
Subject: [PATCH] 合并

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/RecommendController.java |  256 +++++++++++++++++++++++++++-----------------------
 1 files changed, 138 insertions(+), 118 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/RecommendController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/RecommendController.java
index a64ac2d..5bea4d2 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/RecommendController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/RecommendController.java
@@ -7,7 +7,6 @@
 import java.util.Calendar;
 import java.util.Collections;
 import java.util.Date;
-import java.util.Iterator;
 import java.util.List;
 
 import javax.annotation.Resource;
@@ -56,6 +55,7 @@
 import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
 import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBriefExtra;
 import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult;
+import com.yeshi.fanli.entity.taobao.TaoBaoShop;
 import com.yeshi.fanli.entity.taobao.TaoBaoShopInfo;
 import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
 import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
@@ -90,6 +90,7 @@
 import com.yeshi.fanli.service.inter.order.OrderService;
 import com.yeshi.fanli.service.inter.order.ShareGoodsActivityOrderService;
 import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService;
+import com.yeshi.fanli.service.inter.taobao.TaoBaoShopService;
 import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
 import com.yeshi.fanli.service.inter.user.ShamUserService;
 import com.yeshi.fanli.service.inter.user.TBPidService;
@@ -108,6 +109,7 @@
 import com.yeshi.fanli.util.taobao.TaoBaoCouponUtil;
 import com.yeshi.fanli.util.taobao.TaoBaoUtil;
 import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
+import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
 import com.yeshi.fanli.vo.user.UserSettingsVO;
 
 import net.sf.json.JSONArray;
@@ -116,7 +118,6 @@
 @Controller
 @RequestMapping("api/v1/user")
 public class RecommendController {
-
 
 	@Resource
 	private BusinessSystemService businessSystemService;
@@ -141,7 +142,6 @@
 
 	@Resource
 	private UserInfoService userInfoService;
-
 
 	@Resource
 	private TaoBaoCouponService taoBaoCouponService;
@@ -214,13 +214,15 @@
 
 	@Resource
 	private UserInfoExtraService userInfoExtraService;
-	
+
 	@Resource
 	private QualityFlashSaleService qualityFlashSaleService;
-	
 
 	@Resource
 	private TaoBaoGoodsCacheUtil taoBaoGoodsCacheUtil;
+
+	@Resource
+	private TaoBaoShopService taoBaoShopService;
 
 	@RequestMapping(value = "getHonestList")
 	public void getHonestList(AcceptData acceptData, PrintWriter out) {
@@ -1562,7 +1564,6 @@
 		out.print(JsonUtil.loadTrueResult(root));
 	}
 
-	
 	/**
 	 * 鏂扮増鎺ㄨ崘涓撻绠$悊(1.5.3)
 	 * 
@@ -1572,29 +1573,38 @@
 	@RequestMapping(value = "getRecommendIndex")
 	public void getRecommendIndex(AcceptData acceptData, Long uid, PrintWriter out) {
 		try {
-			// 涓撻妯″潡
-			JSONObject root = specialService.listCacheSpecialToIndex();
+			// 1銆佷笓棰樻ā鍧�
+			JSONObject root = specialService.listCacheSpecialToIndex(acceptData);
 
-			// 椤堕儴杞挱鍥�
+			// 2銆侀《閮ㄨ疆鎾浘
 			List<SwiperPicture> topPicList = getSwiperByCard("index_top");
 			if (topPicList == null) {
 				topPicList = new ArrayList<SwiperPicture>();
 			}
 			root.put("topPicList", JsonUtil.getApiCommonGson().toJson(topPicList));
-			
-			// 閭�璇枫�佸垎浜疆鎾浘
-			List<SwiperPicture> invitePicList = getInvitePicList(uid, acceptData);
+
+			// 3銆侀個璇锋湁濂�
+			List<SwiperPicture> invitePicList = null;
+			if ("ios".equalsIgnoreCase(acceptData.getPlatform())
+					&& configService.iosOnLining(Integer.parseInt(acceptData.getVersion()))) {
+				// 濡傛灉IOS褰撳墠鐗堟湰澶勪簬瀹℃牳鐘舵�佸氨涓嶈繑鍥�
+			} else {
+				invitePicList = getSwiperByCard("index_invite");
+			}
+
 			if (invitePicList == null) {
 				invitePicList = new ArrayList<SwiperPicture>();
 			}
 			root.put("invitePicList", JsonUtil.getApiCommonGson().toJson(invitePicList));
-			
-			// 搴曢儴缃戦〉閾炬帴
+
+			// 4銆両OS鐨勫簳閮ㄧ綉椤甸摼鎺�
 			String platform = acceptData.getPlatform();
 			if ("ios".equalsIgnoreCase(platform)) {
 				root.put("htmlLink", configService.get("index_html_link_ios"));
-			} 
+			}
 			
+			root.put("spikeGoods",  getSpikeGoodsContent(acceptData));
+
 			out.print(JsonUtil.loadTrueResult(root));
 		} catch (Exception e) {
 			out.print(JsonUtil.loadFalseResult(1, "鑾峰彇鏁版嵁澶辫触"));
@@ -1602,50 +1612,30 @@
 				LogHelper.errorDetailInfo(e);
 			} catch (Exception e1) {
 				e1.printStackTrace();
-			}	
+			}
 		}
 	}
-	
+
 	/**
 	 * 閭�璇锋湁濂栨槸鍚﹂渶瑕佽繑鍥�
+	 * 
 	 * @param uid
 	 * @param acceptData
 	 * @return
 	 */
-	public List<SwiperPicture>  getInvitePicList(Long uid, AcceptData acceptData) {
+	public List<SwiperPicture> getInvitePicList(Long uid, AcceptData acceptData) {
 		// 濡傛灉IOS褰撳墠鐗堟湰澶勪簬瀹℃牳鐘舵�佸氨涓嶈繑鍥�
 		if ("ios".equalsIgnoreCase(acceptData.getPlatform())
 				&& configService.iosOnLining(Integer.parseInt(acceptData.getVersion()))) {
 			return null;
-		} 
-		
-		List<SwiperPicture> invitePicList = getSwiperByCard("index_invite");	
-		
-		if (uid != null) {
-			try {
-				// 鐢ㄦ埛鑷畾涔夛細涓嶇湅閭�璇锋湁濂�
-				UserSettingsVO vo = userCustomSettingsService.getMySettings(uid);
-				if (vo != null  && vo.getNoInvitationBonus() != null && vo.getNoInvitationBonus() == 1 
-						&& invitePicList != null && invitePicList.size() > 0) {
-					Iterator<SwiperPicture> iterator = invitePicList.iterator();
-					while (iterator.hasNext()) {
-						SwiperPicture swiperPicture = iterator.next();
-						JumpDetailV2 jumpDetail = swiperPicture.getJumpDetail();
-						if (jumpDetail != null && "invite".equals(jumpDetail.getType())) {
-							iterator.remove();
-						}
-					}
-				}
-			} catch (UserCustomSettingsException e) {
-				e.printStackTrace();
-			}
 		}
-		
+
+		List<SwiperPicture> invitePicList = getSwiperByCard("index_invite");
+
 		return invitePicList;
 	}
-	
-	
-	public List<SwiperPicture> getSwiperByCard(String card){
+
+	public List<SwiperPicture> getSwiperByCard(String card) {
 		List<SwiperPicture> swiperList = null;
 		try {
 			swiperList = swiperPictureService.getByBannerCard(card);
@@ -1659,8 +1649,92 @@
 		}
 		return swiperList;
 	}
-	
-	
+
+	private JSONObject getSpikeGoodsContent(AcceptData acceptData) {
+		// 涓嬩竴娆″�掕鏃剁殑鏃堕棿
+		int type = qualityFlashSaleService.getNowType() + 1;
+		int hour = 0;
+		switch (type) {
+		case 1:
+			hour = 0;
+			break;
+		case 2:
+			hour = 9;
+			break;
+		case 3:
+			hour = 12;
+			break;
+		case 4:
+			hour = 14;
+			break;
+		case 5:
+			hour = 16;
+			break;
+		case 6:
+			hour = 20;
+			break;
+		case 7:
+			hour = 22;
+			break;
+		default:
+			break;
+		}
+
+		Calendar nextTime = Calendar.getInstance();
+		nextTime.set(Calendar.HOUR_OF_DAY, hour);
+		nextTime.set(Calendar.MINUTE, 0);
+		nextTime.set(Calendar.SECOND, 0);
+		nextTime.set(Calendar.MILLISECOND, 0);
+
+		JSONArray array = null;
+		String timekey = "spikeGoods_hour";
+		String cachekey = "spikeGoodsList";
+
+		String timeValue = redisManager.getCommonString(timekey);
+		if (timeValue == null || !timeValue.equals(hour + "")) {
+			redisManager.cacheCommonString(timekey, hour + "", 60 * 30);
+		} else {
+			String cacheValue = redisManager.getCommonString(cachekey);
+			if (!StringUtil.isNullOrEmpty(cacheValue)) {
+				array = JSONArray.fromObject(cacheValue);
+			}
+		}
+
+		if (array == null) {
+			array = new JSONArray();
+
+			BigDecimal proportion = manageService.getFanLiRate();
+			Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
+					.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
+
+			// 缂撳瓨涓笉瀛樺湪
+			List<QualityFactory> listGoods = qualityGoodsService.listFlashSaleRandGoods();
+			if (listGoods == null) {
+				listGoods = new ArrayList<QualityFactory>();
+			}
+
+			/* 閬嶅巻鍒楄〃鏁版嵁 */
+			for (QualityFactory qualityFactory : listGoods) {
+
+				TaoBaoGoodsBrief taoBaoGoodsBrief = qualityFactory.getTaoBaoGoodsBrief();
+				if (taoBaoGoodsBrief == null) {
+					continue;
+				}
+				array.add(gson
+						.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null)));
+			}
+
+			// 缂撳瓨鍗婁釜灏忔椂
+			redisManager.cacheCommonString(cachekey, array.toString(), 60 * 30);
+		}
+
+		JSONObject root = new JSONObject();
+		root.put("time", nextTime.getTimeInMillis());
+		root.put("listgoods", array);
+
+		return root;
+	}
+
 	/**
 	 * 闄愭椂绉掓潃 1.5.3
 	 * 
@@ -1669,78 +1743,10 @@
 	 */
 	@RequestMapping(value = "getSpikeGoods")
 	public void getSpikeGoods(AcceptData acceptData, PrintWriter out) {
-		
-		// 涓嬩竴娆″�掕鏃剁殑鏃堕棿
-		int type = qualityFlashSaleService.getNowType() + 1;
-		int hour = 0;
-		switch(type) {
-			case 1:
-				hour = 0;
-				break;
-			case 2:
-				hour = 9;
-				break;
-			case 3:
-				hour = 12;
-				break;
-			case 4:
-				hour = 14;
-				break;
-			case 5:
-				hour = 16;
-				break;
-			case 6:
-				hour = 20;
-				break;
-			case 7:
-				hour = 22;
-				break;
-			default:
-				break;
-		}
-		
-		Calendar nextTime = Calendar.getInstance();
-		nextTime.set(Calendar.HOUR_OF_DAY, hour);
-		nextTime.set(Calendar.MINUTE, 0);
-		nextTime.set(Calendar.SECOND, 0);
-		nextTime.set(Calendar.MILLISECOND, 0);
-		
-		JSONObject root = new JSONObject();
-		root.put("time", nextTime.getTimeInMillis());
-		
-		
-		JSONArray array = new JSONArray();
-		String cachekey = "spikeGoodsList" ;
-		String cacheValue = redisManager.getCommonString(cachekey);
-		if (!StringUtil.isNullOrEmpty(cacheValue)) {
-			array = JSONArray.fromObject(cacheValue);
-		} else {
-			BigDecimal proportion = manageService.getFanLiRate();
-			Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
-					.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
-			
-			// 缂撳瓨涓笉瀛樺湪
-			List<QualityFactory> listGoods = qualityGoodsService.listFlashSaleRandGoods();
-			if (listGoods == null) {
-				listGoods = new ArrayList<QualityFactory>();
-			}
-			/* 閬嶅巻鍒楄〃鏁版嵁 */
-			for (QualityFactory qualityFactory : listGoods) {
-					
-				TaoBaoGoodsBrief taoBaoGoodsBrief = qualityFactory.getTaoBaoGoodsBrief();
-				if (taoBaoGoodsBrief == null) {
-					continue;
-				}
-				array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null)));
-			}
-			// 缂撳瓨鍗婁釜灏忔椂
-			redisManager.cacheCommonString(cachekey, array.toString(), 60 * 30);
-		}
-		root.put("listgoods", array);
+		JSONObject root = getSpikeGoodsContent(acceptData);
 		out.print(JsonUtil.loadTrueResult(root));
 	}
-	
-	
+
 	/**
 	 * 鍟嗗搧鍩烘湰璇︽儏 (1.4.0)
 	 * 
@@ -1889,7 +1895,6 @@
 		TaoBaoGoodsBrief tb = null;
 		if (goodsList.size() > 0) {
 			tb = goodsList.get(0);
-
 		}
 
 		if (tb == null) {
@@ -2011,6 +2016,11 @@
 		}
 		goodsJson.put("hongBao", hongBao);
 
+		List<ClientTextStyleVO> labels = new ArrayList<>();
+		labels.add(new ClientTextStyleVO("鏍囩娴嬭瘯鍐呭", "#FF0000"));
+		labels.add(new ClientTextStyleVO("鏍囩娴嬭瘯鍐呭", "#00FF00"));
+		goodsJson.put("labels", labels);
+
 		data.put("tbPidInfo", clientTBPid);
 
 		String jumpUrl = "https://item.taobao.com/item.htm?id=" + tb.getAuctionId();
@@ -2039,7 +2049,17 @@
 			}
 		}
 		// 搴楅摵
-		goodsJson.put("shopInfo", tbShopInfo);
+		if (("android".equalsIgnoreCase(acceptData.getPlatform()) && Integer.parseInt(acceptData.getVersion()) >= 40)
+				|| ("ios".equalsIgnoreCase(acceptData.getPlatform())
+						&& Integer.parseInt(acceptData.getVersion()) >= 49)) {
+			TaoBaoShop shop = taoBaoShopService.getTaoBaoShop(goods.getAuctionId(), goods.getSellerId());
+			if (shop != null)
+				goodsJson.put("shopInfo", shop);
+		} else {
+			goodsJson.put("shopInfo", tbShopInfo);
+		}
+
+		goodsJson.put("fanliValid", true);// 鏄惁鏈夎繑鍒�
 
 		// 鍒嗕韩璺緞
 		String shareUrl = String.format("%s?id=" + tb.getAuctionId(), Constant.systemCommonConfig.getAppShareInfoUrl());

--
Gitblit v1.8.0