From 7f2f5ef5637a6871f4329e464eeba97eb59e94a3 Mon Sep 17 00:00:00 2001 From: yujian <yujian@123.com> Date: 星期三, 21 八月 2019 10:45:38 +0800 Subject: [PATCH] Merge branch 'div' of ssh://193.112.35.168:29418/fanli-server into div --- fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RecommendControllerV2.java | 245 +++++++++++++++++++++++++++++------------------- 1 files changed, 148 insertions(+), 97 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RecommendControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RecommendControllerV2.java index 2265263..283bdb3 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RecommendControllerV2.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RecommendControllerV2.java @@ -16,8 +16,6 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import com.yeshi.fanli.dto.jd.JDFilter; -import com.yeshi.fanli.dto.jd.JDSearchFilter; import com.yeshi.fanli.dto.jd.JDSearchResult; import com.yeshi.fanli.dto.pdd.PDDGoodsDetail; import com.yeshi.fanli.dto.pdd.PDDGoodsResult; @@ -38,9 +36,12 @@ import com.yeshi.fanli.service.inter.homemodule.SpecialService; import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService; import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService; +import com.yeshi.fanli.service.inter.jd.JDGoodsService; 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.pdd.PDDGoodsService; +import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService; import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailService; import com.yeshi.fanli.tag.PageEntity; import com.yeshi.fanli.util.Constant; @@ -50,9 +51,6 @@ import com.yeshi.fanli.util.VersionUtil; import com.yeshi.fanli.util.factory.MonitorFactory; import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory; -import com.yeshi.fanli.util.jd.JDApiUtil; -import com.yeshi.fanli.util.jd.JDUtil; -import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil; import com.yeshi.fanli.util.taobao.TaoBaoUtil; import com.yeshi.fanli.util.taobao.TaoKeApiUtil; import com.yeshi.fanli.vo.goods.GoodsDetailVO; @@ -75,13 +73,13 @@ @Resource private RedisManager redisManager; - + @Resource private HomeRecommendGoodsService homeRecommendGoodsService; - + @Resource private ConfigService configService; - + @Resource private MonitorService monitorService; @@ -93,20 +91,28 @@ @Resource private RecommendGoodsDeleteHistoryService recommendGoodsDeleteHistoryService; - + @Resource private JumpDetailV2Service jumpDetailV2Service; - + @Resource private DeviceSexService deviceSexService; - + @Resource private SpecialService specialService; @Resource private SwiperPictureService swiperPictureService; - - + + @Resource + private JDGoodsService jdGoodsService; + + @Resource + private PDDGoodsService pddGoodsService; + + @Resource + private TaoBaoGoodsUpdateService taoBaoGoodsUpdateService; + /** * 鏂扮増鎺ㄨ崘涓撻绠$悊(1.5.3) * @@ -123,10 +129,16 @@ JSONObject root = specialService.listCacheSpecialToIndex(acceptData, deviceSex); // 2銆侀《閮ㄨ疆鎾浘 - List<SwiperPicture> topPicList = swiperPictureService.getByBannerCard("index_top"); - if (topPicList == null) { - topPicList = new ArrayList<SwiperPicture>(); + List<SwiperPicture> oldtopPicList = swiperPictureService.getByBannerCard("index_top"); + List<SwiperPicture> topPicList = new ArrayList<>(); + if (oldtopPicList != null && oldtopPicList.size() > 0) + topPicList.addAll(oldtopPicList); + if ("ios".equalsIgnoreCase(acceptData.getPlatform())) { + SwiperPicture notifyReName = swiperPictureService.selectByPrimaryKey(162L); + if (notifyReName != null) + topPicList.add(0, notifyReName); } + root.put("topPicList", JsonUtil.getApiCommonGson().toJson(topPicList)); // 3銆侀個璇锋湁濂� @@ -150,6 +162,8 @@ } root.put("spikeGoods", getSpikeGoodsContent(acceptData)); + if (VersionUtil.greaterThan_1_6_5(acceptData.getPlatform(), acceptData.getVersion())) + root.put("scoreExchange", getScoreExchangeInfo(acceptData)); out.print(JsonUtil.loadTrueResult(root)); } catch (Exception e) { @@ -161,9 +175,7 @@ } } } - - /** * 闄愭椂绉掓潃 1.5.3 * @@ -175,8 +187,6 @@ JSONObject root = getSpikeGoodsContent(acceptData); out.print(JsonUtil.loadTrueResult(root)); } - - private JSONObject getSpikeGoodsContent(AcceptData acceptData) { // 涓嬩竴娆″�掕鏃剁殑鏃堕棿 @@ -233,7 +243,7 @@ BigDecimal fanLiRate = hongBaoManageService.getFanLiRate(); BigDecimal shareRate = hongBaoManageService.getShareRate(); - + Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create(); @@ -250,11 +260,12 @@ if (taoBaoGoodsBrief == null) { continue; } - GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, null, fanLiRate, shareRate); - + GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, null, fanLiRate, + shareRate); + JSONObject params = new JSONObject(); params.put("url", configService.get("spike_goods_link") + "?id=" + taoBaoGoodsBrief.getAuctionId()); - + JSONObject goods = new JSONObject(); goods.put("goods", gson.toJson(detailVO)); goods.put("params", params); @@ -274,53 +285,101 @@ Long endTime = nextTime.getTimeInMillis() - java.lang.System.currentTimeMillis(); JSONObject root = new JSONObject(); - root.put("time", nextTime.getTimeInMillis()); - root.put("endTime", endTime > 0 ? endTime : 0); - root.put("listgoods", array); - - JSONObject params = new JSONObject(); - params.put("url", configService.get("spike_goods_link")); - - root.put("params", params); - root.put("jumpDetail", jumpDetail); + if (VersionUtil.greaterThan_1_6_5(acceptData.getPlatform(), acceptData.getVersion())) { + root.put("time", nextTime.getTimeInMillis()); + root.put("endTime", endTime > 0 ? endTime : 0); + JSONArray imgArray = new JSONArray(); + if (array != null) + for (int i = 0; i < array.size(); i++) { + imgArray.add(array.optJSONObject(i).optJSONObject("goods").optString("picUrl")); + } + root.put("imgList", imgArray); + JSONObject params = new JSONObject(); + params.put("url", configService.get("spike_goods_link")); + root.put("params", params); + root.put("jumpDetail", jumpDetail); + root.put("name", "闄愭椂绉掓潃"); + root.put("desc", "鏁寸偣鏇存柊锛屽ソ鐗╂姠璐�"); + } else { + root.put("time", nextTime.getTimeInMillis()); + root.put("endTime", endTime > 0 ? endTime : 0); + root.put("listgoods", array); + JSONObject params = new JSONObject(); + params.put("url", configService.get("spike_goods_link")); + root.put("params", params); + root.put("jumpDetail", jumpDetail); + } return root; } - - - + + /** + * 閲戝竵鍏戞崲淇℃伅 + * + * @param acceptData + * @return + */ + private JSONObject getScoreExchangeInfo(AcceptData acceptData) { + + JSONObject root = new JSONObject(); + JSONArray array = new JSONArray(); + array.add( + "http://img.flqapp.com/resource/integral/integral_home_icon_2.png"); + array.add( + "http://img.flqapp.com/resource/integral/integral_home_icon_1.png"); + root.put("imgList", array); + JSONObject params = new JSONObject(); + params.put("balanceMore", true); + root.put("params", params); + root.put("jumpDetail", jumpDetailV2Service.getByTypeCache("integralExchange", + Constant.getPlatformCode(acceptData.getPlatform()), Integer.parseInt(acceptData.getVersion()))); + + root.put("name", "閲戝竵鍏戞崲"); + root.put("desc", "姣忔棩绛惧埌锛屾儕鍠滀笉鍋�"); + root.put("tagImg", "http://img.flqapp.com/resource/score_exchange_tag.png"); + return root; + } + /** * 棣栭〉搴曢儴鍟嗗搧鎺ㄨ崘 + * * @param acceptData * @param out */ @RequestMapping(value = "getGoodList") - public void getGoodList(AcceptData acceptData, Integer goodsType, Integer page, HttpServletRequest request, PrintWriter out) { - + public void getGoodList(AcceptData acceptData, Integer goodsType, Integer page, HttpServletRequest request, + PrintWriter out) { + if (goodsType == null || page == null) { out.print(JsonUtil.loadFalseResult("鍙傛暟淇℃伅涓嶆甯�")); return; } - - if (goodsType == Constant.SOURCE_TYPE_TAOBAO) { - taoBaoGuessUserLikeByDevice(acceptData, page, request, out); - return; + + try { + if (goodsType == Constant.SOURCE_TYPE_TAOBAO) { + taoBaoGuessUserLikeByDevice(acceptData, page, request, out); + return; + } + + if (goodsType == Constant.SOURCE_TYPE_JD) { + getIndexJDGoods(acceptData, page, out); + return; + } + + if (goodsType == Constant.SOURCE_TYPE_PDD) { + getIndexPDDGoods(acceptData, page, out); + return; + } + out.print(JsonUtil.loadFalseResult("鍟嗗搧绫诲瀷閿欒")); + } catch (Exception e) { + LogHelper.errorDetailInfo(e); + JSONObject data = new JSONObject(); + data.put("list", new JSONArray()); + data.put("count", 0); + out.print(JsonUtil.loadTrueResult(data)); } - - if (goodsType == Constant.SOURCE_TYPE_JD) { - getIndexJDGoods(acceptData, page, out); - return; - } - - if (goodsType == Constant.SOURCE_TYPE_PDD) { - searchPDDGoods(acceptData, page, out); - return; - } - out.print(JsonUtil.loadFalseResult("鍟嗗搧绫诲瀷閿欒")); } - - - + /** * 鏍规嵁璁惧淇℃伅鑾峰彇鐚滀綘鍠滄鐨勫唴瀹� * @@ -330,16 +389,24 @@ * @param idfa * -IOS鐨刬dfa骞垮憡鏍囪瘑淇℃伅 */ - public void taoBaoGuessUserLikeByDevice(AcceptData acceptData, int page, HttpServletRequest request, PrintWriter out) { + public void taoBaoGuessUserLikeByDevice(AcceptData acceptData, int page, HttpServletRequest request, + PrintWriter out) { int pageSize = Constant.PAGE_SIZE; JSONArray array = new JSONArray(); Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).create(); - + String idfa = acceptData.getIdfa(); String imei = acceptData.getImei(); if (VersionUtil.greaterThan_1_5_70(acceptData.getPlatform(), acceptData.getVersion())) { List<TaoBaoGoodsBrief> goodsList = homeRecommendGoodsService.listGoodsByPage(null, acceptData.getDevice(), imei, idfa, page); + + if (page < 4) {// 鍓嶄笁椤靛姞鍏ユ洿鏂� + try { + taoBaoGoodsUpdateService.addUpdateQueueAsync(goodsList); + } catch (Exception e) { + } + } BigDecimal fanLiRate = hongBaoManageService.getFanLiRate(); BigDecimal shareRate = hongBaoManageService.getShareRate(); @@ -361,20 +428,22 @@ for (int i = list.size() - 1; i >= 0; i--) { TLJBuyGoods goods = list.get(i); BigDecimal rateBuy = TaoBaoConstant.OWN_BUY_WITHOUT_FANLI_RATE; - GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(goods.getGoods(), null, rateBuy, rateBuy); - - String hongBao = TaoBaoUtil.getGoodsHongBaoInfo(goods.getGoods(),TaoBaoConstant.OWN_BUY_WITHOUT_FANLI_RATE); - + GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(goods.getGoods(), null, rateBuy, + rateBuy); + + String hongBao = TaoBaoUtil.getGoodsHongBaoInfo(goods.getGoods(), + TaoBaoConstant.OWN_BUY_WITHOUT_FANLI_RATE); + ReduceHongBao reduceHongBao = new ReduceHongBao(); reduceHongBao.setLeft(goods.getLeftHongBaoCount()); reduceHongBao.setMoney(hongBao); reduceHongBao.setName("浠樻绔嬪噺 "); reduceHongBao.setTip(""); reduceHongBao.setTotal(goods.getTotalHongBaoCount()); - + OtherInfo otherInfo = new OtherInfo(); otherInfo.setReduceHongBao(reduceHongBao); - + detailVO.setOtherInfo(otherInfo); detailVO.setPictureTag(new ClientTextStyleVO("绔嬪噺TOP" + (i + 1), "#E5005C", "#FCE431", null)); detailVO.setRecommend(true); @@ -414,20 +483,21 @@ if (gList != null) { BigDecimal fanLiRate = hongBaoManageService.getFanLiRate(); BigDecimal shareRate = hongBaoManageService.getShareRate(); - + for (TaoBaoGoodsBrief goods : gList) { if (!StringUtil.isNullOrEmpty(goods.getCouponInfo()) && goods.getCouponAmount() != null && goods.getCouponAmount().compareTo(new BigDecimal("5")) >= 0 && goods.getBiz30day() > 1000 && !StringUtil.isNullOrEmpty(goods.getPictUrlWhite())) { - - GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(goods, null, fanLiRate, shareRate); + + GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(goods, null, fanLiRate, + shareRate); detailVO.setRecommend(true); goodsList.add(detailVO); } } } - + try { monitorService.addClientAPIMonitor(MonitorFactory.createClientAPI(request, 0, (int) (java.lang.System.currentTimeMillis() - startTime), "鎺ㄨ崘鏁伴噺:" + goodsList.size())); @@ -464,32 +534,16 @@ data.put("count", 1000); out.print(JsonUtil.loadTrueResult(data)); } - - - - + /** * 浜笢棣栭〉鍟嗗搧 + * * @param acceptData * @param page * @param out */ private void getIndexJDGoods(AcceptData acceptData, int page, PrintWriter out) { - JDSearchResult result = null; - String way = configService.get("jd_api_search_key"); - if ("1".equals(way)) { - JDFilter filterAPI = new JDFilter(); - filterAPI.setPageIndex(page); - filterAPI.setPageSize(20); - result = JDApiUtil.queryByKey(filterAPI); - } else { - // 缃戦〉鐖彇 - JDSearchFilter jdfilter = new JDSearchFilter(); - jdfilter.setPageNo(page); - jdfilter.setPageSize(Constant.PAGE_SIZE); - result = JDUtil.searchByKey(jdfilter); - } - + JDSearchResult result = jdGoodsService.getIndexJDGoods(page); long count = 0; JSONObject data = new JSONObject(); JSONArray array = new JSONArray(); @@ -506,8 +560,7 @@ Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create(); for (JDGoods goods : goodsList) { - GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertJDGoods(goods, null, fanLiRate, - shareRate); + GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertJDGoods(goods, fanLiRate, shareRate); array.add(gson.toJson(goodsDetailVO)); } } @@ -518,16 +571,15 @@ out.print(JsonUtil.loadTrueResult(data)); } - /** - * 鐖嗘鎺掕鍟嗗搧-瀹炴椂鐑攢姒� + * 鐖嗘鎺掕鍟嗗搧-瀹炴椂鐑攢姒� + * * @param acceptData * @param page * @param out */ - private void searchPDDGoods(AcceptData acceptData, int page, PrintWriter out) { - PDDGoodsResult result = PinDuoDuoApiUtil.getTopList(PinDuoDuoApiUtil.PID_FANLI, page-1, Constant.PAGE_SIZE, 1); - + private void getIndexPDDGoods(AcceptData acceptData, int page, PrintWriter out) { + PDDGoodsResult result = pddGoodsService.getTopGoodsList(page, 1); int count = 0; JSONArray array = new JSONArray(); if (result != null) { @@ -539,8 +591,7 @@ BigDecimal shareRate = hongBaoManageService.getShareRate(); for (PDDGoodsDetail goods : goodsList) { - GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertPDDGoods(goods, null, fanLiRate, - shareRate); + GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertPDDGoods(goods, fanLiRate, shareRate); array.add(gson.toJson(goodsDetailVO)); } } @@ -551,5 +602,5 @@ data.put("count", count); out.print(JsonUtil.loadTrueResult(data)); } - + } -- Gitblit v1.8.0