From 4114e871bcb3dce771b6aed64a1027d0bbb95ca6 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期四, 16 五月 2019 15:28:37 +0800 Subject: [PATCH] 增加动态用户 --- fanli/src/main/java/com/yeshi/fanli/controller/client/RecommendController.java | 266 +++++++++++++++++++++++++++++----------------------- 1 files changed, 148 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..a815927 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,94 @@ } 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); + } + 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); + + return root; + } + /** * 闄愭椂绉掓潃 1.5.3 * @@ -1669,78 +1745,16 @@ */ @RequestMapping(value = "getSpikeGoods") public void getSpikeGoods(AcceptData acceptData, PrintWriter out) { + JSONObject params = new JSONObject(); + params.put("url", configService.get("spike_goods_link")); + JumpDetailV2 jumpDetail = jumpDetailV2Service.getByTypeCache("web"); - // 涓嬩竴娆″�掕鏃剁殑鏃堕棿 - 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); + root.put("params", params); + root.put("jumpDetail", jumpDetail); out.print(JsonUtil.loadTrueResult(root)); } - - + /** * 鍟嗗搧鍩烘湰璇︽儏 (1.4.0) * @@ -1889,7 +1903,6 @@ TaoBaoGoodsBrief tb = null; if (goodsList.size() > 0) { tb = goodsList.get(0); - } if (tb == null) { @@ -1918,9 +1931,11 @@ goodsJson.put("price", tb.getReservePrice().toString()); goodsJson.put("zkPrice", tb.getZkPrice().toString()); + // 30澶╅攢閲� goodsJson.put("saleCount", TaoBaoUtil.getSaleCount(tb.getBiz30day())); - + goodsJson.put("salesCount", TaoBaoUtil.getSaleCount(tb.getBiz30day())); + // 鍒嗕韩璧� BigDecimal shareMoney = taoBaoGoodsBriefService.getShareGoodsUserHongBao(tb); data.put("shareMoney", "楼" + shareMoney); @@ -2011,6 +2026,11 @@ } goodsJson.put("hongBao", hongBao); + List<ClientTextStyleVO> labels = new ArrayList<>(); + labels.add(new ClientTextStyleVO("鏍囩鍐呭", "#F14242")); + 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 +2059,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",Math.random()>0.5? true:false);// 鏄惁鏈夎繑鍒� // 鍒嗕韩璺緞 String shareUrl = String.format("%s?id=" + tb.getAuctionId(), Constant.systemCommonConfig.getAppShareInfoUrl()); -- Gitblit v1.8.0