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 | 232 ++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 209 insertions(+), 23 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 d2c43d1..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 @@ -8,7 +8,6 @@ import java.util.Collections; import java.util.Date; import java.util.List; -import java.util.Map; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -28,11 +27,11 @@ import com.google.gson.JsonPrimitive; import com.google.gson.JsonSerializationContext; import com.google.gson.JsonSerializer; -import com.yeshi.fanli.dao.mybatis.HongBaoManageMapper; import com.yeshi.fanli.entity.accept.AcceptData; import com.yeshi.fanli.entity.bus.homemodule.Special; import com.yeshi.fanli.entity.bus.homemodule.SuperSpecial; import com.yeshi.fanli.entity.bus.homemodule.SwiperPicture; +import com.yeshi.fanli.entity.bus.lable.QualityFactory; import com.yeshi.fanli.entity.bus.recommend.Honest; import com.yeshi.fanli.entity.bus.recommend.RecommendBanner; import com.yeshi.fanli.entity.bus.recommend.RecommendBannerV2; @@ -53,10 +52,10 @@ import com.yeshi.fanli.entity.taobao.ClientTBPid; import com.yeshi.fanli.entity.taobao.PidUser; import com.yeshi.fanli.entity.taobao.SearchFilter; -import com.yeshi.fanli.entity.taobao.TBPid; 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; @@ -75,7 +74,6 @@ import com.yeshi.fanli.service.inter.config.SystemConfigService; import com.yeshi.fanli.service.inter.goods.CollectionGoodsV2Service; import com.yeshi.fanli.service.inter.goods.CommonGoodsService; -import com.yeshi.fanli.service.inter.goods.RecommendBannerService; import com.yeshi.fanli.service.inter.goods.ScanHistoryV2Service; import com.yeshi.fanli.service.inter.goods.SuperRecommendBannerService; import com.yeshi.fanli.service.inter.goods.SuperRecommendBannerV2Service; @@ -86,11 +84,13 @@ import com.yeshi.fanli.service.inter.homemodule.SuperSpecialService; import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService; import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService; +import com.yeshi.fanli.service.inter.lable.QualityFlashSaleService; import com.yeshi.fanli.service.inter.lable.QualityGoodsService; import com.yeshi.fanli.service.inter.monitor.MonitorService; 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; @@ -107,9 +107,9 @@ import com.yeshi.fanli.util.cache.TaoBaoGoodsCacheUtil; import com.yeshi.fanli.util.factory.MonitorFactory; import com.yeshi.fanli.util.taobao.TaoBaoCouponUtil; -import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil; 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; @@ -118,9 +118,6 @@ @Controller @RequestMapping("api/v1/user") public class RecommendController { - - @Resource - private RecommendBannerService recommendService; @Resource private BusinessSystemService businessSystemService; @@ -147,9 +144,6 @@ private UserInfoService userInfoService; @Resource - private TaoBaoOrderUtil taoBaoOrderUtil; - - @Resource private TaoBaoCouponService taoBaoCouponService; @Resource @@ -160,9 +154,6 @@ @Resource private CollectionGoodsV2Service collectionGoodsV2Service; - - @Resource - private HongBaoManageMapper hongBaoManageMapper; @Resource private TaoBaoGoodsBriefService taoBaoGoodsBriefService; @@ -225,12 +216,16 @@ 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) { - BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(), - acceptData.getPackages()); List<Honest> honestList = null; List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService.getConfigByTypeCache(PidUser.TYPE_FANLI_ANDROID); if ((Integer.parseInt(acceptData.getVersion()) >= 20 && "android".equalsIgnoreCase(acceptData.getPlatform())) @@ -979,7 +974,6 @@ ClientTBPid clientTBPid = null; // 鐢ㄦ埛宸茬粡鐧诲綍 if (!StringUtil.isNullOrEmpty(uid)) { - TBPid tbPid = null; if (acceptData.getPlatform().equalsIgnoreCase("android")) { clientTBPid = tbPidService.getAndroidDefault(); } else { @@ -1301,7 +1295,6 @@ // 浠庢帹鑽愭潵 if (page <= 1) { array.clear(); - Map<String, String> map = hongBaoManageService.convertMap(); BigDecimal proportion = manageService.getFanLiRate(); if (!StringUtil.isNullOrEmpty(imei) || !StringUtil.isNullOrEmpty(idfa)) { long startTime = java.lang.System.currentTimeMillis(); @@ -1343,14 +1336,12 @@ proportion.toString()); array.addAll(localArray); } else {// 浠庣簿閫夊簱鏉� - Map<String, String> map = hongBaoManageService.convertMap(); BigDecimal proportion = manageService.getFanLiRate(); array = qualityGoodsService.getRecommendToIndex((page - 1) * pageSize, pageSize, proportion.toString()); if (array == null) { out.print(JsonUtil.loadFalseResult("娌℃湁鏇村浜�")); return; } - long count = qualityGoodsService.countRecommendToIndex(proportion.toString()); } JSONObject data = new JSONObject(); @@ -1570,9 +1561,190 @@ root.put("invite", invite); } } - out.print(JsonUtil.loadTrueResult(root)); + } + /** + * 鏂扮増鎺ㄨ崘涓撻绠$悊(1.5.3) + * + * @param acceptData + * @param out + */ + @RequestMapping(value = "getRecommendIndex") + public void getRecommendIndex(AcceptData acceptData, Long uid, PrintWriter out) { + try { + // 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)); + + // 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, "鑾峰彇鏁版嵁澶辫触")); + try { + LogHelper.errorDetailInfo(e); + } catch (Exception e1) { + e1.printStackTrace(); + } + } + } + + /** + * 閭�璇锋湁濂栨槸鍚﹂渶瑕佽繑鍥� + * + * @param uid + * @param acceptData + * @return + */ + 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"); + + return invitePicList; + } + + public List<SwiperPicture> getSwiperByCard(String card) { + List<SwiperPicture> swiperList = null; + try { + swiperList = swiperPictureService.getByBannerCard(card); + } catch (Exception e) { + try { + LogHelper.errorDetailInfo(e); + } catch (Exception e1) { + e1.printStackTrace(); + } + e.printStackTrace(); + } + 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 + * + * @param acceptData + * @param out + */ + @RequestMapping(value = "getSpikeGoods") + public void getSpikeGoods(AcceptData acceptData, PrintWriter out) { + JSONObject root = getSpikeGoodsContent(acceptData); + out.print(JsonUtil.loadTrueResult(root)); } /** @@ -1723,7 +1895,6 @@ TaoBaoGoodsBrief tb = null; if (goodsList.size() > 0) { tb = goodsList.get(0); - } if (tb == null) { @@ -1845,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(); @@ -1873,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