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 | 568 ++++++++++++++++++++++++++++++++------------------------ 1 files changed, 327 insertions(+), 241 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 5f52b1f..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,15 +52,16 @@ 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; import com.yeshi.fanli.exception.goods.CommonGoodsException; import com.yeshi.fanli.exception.goods.ScanHistoryException; +import com.yeshi.fanli.exception.taobao.TaoKeApiException; import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException; import com.yeshi.fanli.exception.taobao.TaobaoGoodsUpdateException; import com.yeshi.fanli.exception.user.UserCustomSettingsException; @@ -74,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; @@ -85,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; @@ -100,13 +101,15 @@ import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.RedisManager; import com.yeshi.fanli.util.StringUtil; +import com.yeshi.fanli.util.TaoBaoConstant; import com.yeshi.fanli.util.ThreadUtil; import com.yeshi.fanli.util.TimeUtil; +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; @@ -115,7 +118,6 @@ @Controller @RequestMapping("api/v1/user") public class RecommendController { - @Resource private BusinessSystemService businessSystemService; @@ -140,7 +142,6 @@ @Resource private UserInfoService userInfoService; - @Resource private TaoBaoCouponService taoBaoCouponService; @@ -214,10 +215,17 @@ @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) { - 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())) @@ -564,8 +572,8 @@ // 鑾峰彇娣樺鍙傛暟 ClientTBPid clientTBPid = null; if (simpleGoods.getMaterialLibType() != null && simpleGoods.getMaterialLibType() == 1) { - String pid = Constant.TAOBAO_SPECIAL_PID_DEFAULT; - clientTBPid = new ClientTBPid(Constant.TAOBAO_AUTH_APPKEY, Constant.TAOBAO_AUTH_APPSECRET, + String pid = TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT; + clientTBPid = new ClientTBPid(TaoBaoConstant.TAOBAO_AUTH_APPKEY, TaoBaoConstant.TAOBAO_AUTH_APPSECRET, pid.split("_")[2], pid.split("_")[3]); } else { if (acceptData.getPlatform().equalsIgnoreCase("android")) { @@ -966,7 +974,6 @@ ClientTBPid clientTBPid = null; // 鐢ㄦ埛宸茬粡鐧诲綍 if (!StringUtil.isNullOrEmpty(uid)) { - TBPid tbPid = null; if (acceptData.getPlatform().equalsIgnoreCase("android")) { clientTBPid = tbPidService.getAndroidDefault(); } else { @@ -1288,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(); @@ -1330,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(); @@ -1557,12 +1561,9 @@ root.put("invite", invite); } } - out.print(JsonUtil.loadTrueResult(root)); - } - /** * 鏂扮増鎺ㄨ崘涓撻绠$悊(1.5.3) * @@ -1571,18 +1572,73 @@ */ @RequestMapping(value = "getRecommendIndex") public void getRecommendIndex(AcceptData acceptData, Long uid, PrintWriter out) { + try { + // 1銆佷笓棰樻ā鍧� + JSONObject root = specialService.listCacheSpecialToIndex(acceptData); - BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(), - acceptData.getPackages()); - if (system == null) { - out.print(JsonUtil.loadFalseResult(1, "绯荤粺涓嶅瓨鍦�")); - return; + // 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("weex_index"); + swiperList = swiperPictureService.getByBannerCard(card); } catch (Exception e) { try { LogHelper.errorDetailInfo(e); @@ -1591,115 +1647,106 @@ } e.printStackTrace(); } + return swiperList; + } - if (swiperList == null) { - swiperList = new ArrayList<SwiperPicture>(); - } - - - Special miaoShaSpecial = null; - // 涓よ鍦嗗舰涓撻 - List<Special> arcList = new ArrayList<Special>(); - - // 娲诲姩鍒楄〃 - List<Special> activityList = new ArrayList<Special>(); - - // 鏂瑰潡閮ㄥ垎 - List<Special> blockList = new ArrayList<Special>(); - - - try { - List<Special> listSpecial = specialService.listBySystemAndCard("index", system.getId()); - - if (listSpecial != null && listSpecial.size() > 0) { - for (Special special : listSpecial) { - - if ("闄愭椂绉掓潃".equals(special.getName())) { - miaoShaSpecial = special; - continue; - } - - if (Special.SHOWTYPE_ARC.equals(special.getShowType())) { - // 涓よ鍦嗗舰涓撻 - arcList.add(special); - } else if (Special.SHOWTYPE_BLOCK.equals(special.getShowType())) { - // 鏂瑰潡閮ㄥ垎 - blockList.add(special); - } else if (Special.SHOWTYPE_ACTIVITY.equals(special.getShowType())) { - // 鍔ㄦ�� - activityList.add(special); - } - } - } - - } catch (Exception e) { - e.printStackTrace(); + 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); - /* 闄愭椂绉掓潃 - 鏃堕棿澶勭悊 */ - JSONObject msJSON = JSONObject.fromObject(new Gson().toJson(miaoShaSpecial)); - if (miaoShaSpecial != null) { - // 鑾峰彇绉掓潃 - int[] hours = new int[] { 0, 9, 12, 14, 16, 20, 22 }; - int hour = -1; - Calendar calendar = Calendar.getInstance(); - calendar.setTimeInMillis(Long.parseLong(acceptData.getTime())); - int nowHour = calendar.get(Calendar.HOUR_OF_DAY); - for (int i = 0; i < hours.length - 1; i++) { - if (nowHour >= hours[i] && nowHour < hours[i + 1]) { - hour = hours[i + 1]; - break; - } + 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>(); } - if (hour < 0) - hour = 24; - long time = TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(calendar.getTimeInMillis(), "yyyy-MM-dd"), - "yyyy-MM-dd") + 1000 * 60 * 60 * hour; - msJSON.put("time", time); + /* 閬嶅巻鍒楄〃鏁版嵁 */ + 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("swiperList", JsonUtil.getApiCommonGson().toJson(swiperList)); - root.put("arcList", JsonUtil.getApiCommonGson().toJson(arcList)); - root.put("activityList", JsonUtil.getApiCommonGson().toJson(activityList)); - root.put("blockList", JsonUtil.getApiCommonGson().toJson(blockList)); - root.put("miaoSha", msJSON); + root.put("time", nextTime.getTimeInMillis()); + root.put("listgoods", array); - // 澧炲姞閭�璇锋湁濂� - JSONObject invite = new JSONObject(); - JumpDetailV2 jumpDetail = jumpDetailV2Service.getByTypeCache("invite"); - invite.put("jumpDetail", jumpDetail); - invite.put("picture", configService.get("home_invite_banner")); - - if ("ios".equalsIgnoreCase(acceptData.getPlatform()) - && configService.iosOnLining(Integer.parseInt(acceptData.getVersion()))) { - // 濡傛灉IOS褰撳墠鐗堟湰澶勪簬瀹℃牳鐘舵�佸氨涓嶈繑鍥� - } else { - - // 鎸夌収鐗堟湰杩斿洖锛岀増鏈鐩栬冻澶熷悗鍙垹闄� - if (("android".equalsIgnoreCase(acceptData.getPlatform()) && Integer.parseInt(acceptData.getVersion()) > 30) - || ("ios".equalsIgnoreCase(acceptData.getPlatform()) - && Integer.parseInt(acceptData.getVersion()) > 37)) { - if (uid != null) { - try { - UserSettingsVO vo = userCustomSettingsService.getMySettings(uid); - if (vo == null || vo.getNoInvitationBonus() == null || vo.getNoInvitationBonus() == 0)// 娌℃湁鍏抽棴閭�璇� - root.put("invite", invite); - } catch (UserCustomSettingsException e) { - e.printStackTrace(); - } - } else - root.put("invite", invite); - } - } - - out.print(JsonUtil.loadTrueResult(root)); - + 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)); + } + /** * 鍟嗗搧鍩烘湰璇︽儏 (1.4.0) * @@ -1752,110 +1799,102 @@ LogHelper.test("鑾峰彇PID鑰楁椂锛�" + (java.lang.System.currentTimeMillis() - startTime)); - final String clientPid = clientTBPid.getPid(); final List<TaoBaoGoodsBrief> goodsList = new ArrayList<>(); // 鏄惁鍦ㄦ湇鍔$杩涜杞摼 boolean convertInServer = configService.isConvertTaoBaoLinkInServer(); - List<String> taskList = new ArrayList<>(); - // 鑾峰彇鍟嗗搧鍩烘湰淇℃伅 - taskList.add("goods"); + JSONObject ticket = new JSONObject(); + TaoBaoGoodsBrief goods = null; - taskList.stream().parallel().forEach(task -> { - if (task.equalsIgnoreCase("goods")) { - JSONObject ticket = new JSONObject(); - TaoBaoGoodsBrief goods = null; - - if (!convertInServer) { - - try { - goods = redisManager.getTaoBaoGoodsBrief(Long.parseLong(id)); - if (goods.getTkRate() == null || new BigDecimal(0).compareTo(goods.getTkRate()) == 0) { - String appId = clientPid.split("_")[2]; - TaoBaoUnionConfig config = taoBaoUnionConfigService.getConfigByAppIdCache(appId); - TaoKeAppInfo app = new TaoKeAppInfo(); - app.setAdzoneId(clientPid.split("_")[3]); - app.setAppKey(config.getAppKey()); - app.setAppSecret(config.getAppSecret()); - app.setPid(clientPid); - TaoBaoGoodsBrief linkInfo = TaoKeApiUtil.specialConvertCoupon(goods.getAuctionId(), app); - if (linkInfo != null) { - goods.setAuctionUrl(linkInfo.getAuctionUrl()); - goods.setCouponLink(linkInfo.getCouponLink()); - goods.setTkRate(linkInfo.getTkRate()); - } - } - } catch (TaobaoGoodsDownException e) { - // 鍟嗗搧涓嬫灦 - ThreadUtil.run(new Runnable() { - public void run() { - taoBaoGoodsUpdateService.offlineTaoBaoGoods(Long.parseLong(id)); - } - }); - - } - - } else { - String appId = clientPid.split("_")[2]; - TaoBaoUnionConfig config = taoBaoUnionConfigService.getConfigByAppIdCache(appId); + if (!convertInServer) { + try { + goods = taoBaoGoodsCacheUtil.getCommonTaoBaoGoodsInfo(Long.parseLong(id)); + if (goods == null) { TaoKeAppInfo app = new TaoKeAppInfo(); - app.setAdzoneId(clientPid.split("_")[3]); - app.setAppKey(config.getAppKey()); - app.setAppSecret(config.getAppSecret()); - app.setPid(clientPid); - - try { - goods = TaoKeApiUtil.searchGoodsDetail(Long.parseLong(id), app); - if (goods != null) { - ticket.put("clickUrl", goods.getAuctionUrl()); - // 娴嬭瘯浣跨敤 - ticket.put("couponUrl", goods.getCouponLink()); - data.put("ticket", ticket); - } - - if (goods.getTkRate() == null || new BigDecimal(0).compareTo(goods.getTkRate()) == 0) { - TaoBaoGoodsBrief linkInfo = TaoKeApiUtil.specialConvertCoupon(goods.getAuctionId(), app); - if (linkInfo != null) { - goods.setAuctionUrl(linkInfo.getAuctionUrl()); - goods.setCouponLink(linkInfo.getCouponLink()); - goods.setTkRate(linkInfo.getTkRate()); - } - } - - } catch (NumberFormatException e) { - e.printStackTrace(); - } catch (TaobaoGoodsDownException e) { + app.setAppKey(TaoBaoConstant.TAOBAO_COMMON_APPKEY); + app.setAppSecret(TaoBaoConstant.TAOBAO_COMMON_APPSECRET); + app.setPid(TaoBaoConstant.TAOBAO_COMMON_PID); + app.setAdzoneId(TaoBaoConstant.TAOBAO_COMMON_PID.split("_")[3]); + goods = TaoKeApiUtil.searchGoodsDetail(Long.parseLong(id), app); + final TaoBaoGoodsBrief finalGoods = goods; + if (goods != null) { ThreadUtil.run(new Runnable() { + @Override public void run() { - taoBaoGoodsUpdateService.offlineTaoBaoGoods(Long.parseLong(id)); + taoBaoGoodsCacheUtil.saveCommonTaoBaoGoodsInfo(finalGoods); } }); } - } + } catch (TaobaoGoodsDownException e) { + // 鍟嗗搧涓嬫灦 + ThreadUtil.run(new Runnable() { + public void run() { + taoBaoGoodsUpdateService.offlineTaoBaoGoods(Long.parseLong(id)); + } + }); - if (goods != null) { - goodsList.add(goods); - final TaoBaoGoodsBrief newGoods = goods; - ThreadUtil.run(new Runnable() { - public void run() { - try { - // 鏇存柊鍟嗗搧 - LogHelper.test("鏇存柊鍟嗗搧璇︽儏:" + newGoods.getAuctionId()); - taoBaoGoodsUpdateService.updateTaoBaoGoods(newGoods); - } catch (TaobaoGoodsUpdateException e) { - - } - } - }); - } } - }); + + } else { + final String clientPid = clientTBPid.getPid(); + String appId = clientPid.split("_")[2]; + TaoBaoUnionConfig config = taoBaoUnionConfigService.getConfigByAppIdCache(appId); + TaoKeAppInfo app = new TaoKeAppInfo(); + app.setAdzoneId(clientPid.split("_")[3]); + app.setAppKey(config.getAppKey()); + app.setAppSecret(config.getAppSecret()); + app.setPid(clientPid); + + try { + goods = TaoKeApiUtil.searchGoodsDetail(Long.parseLong(id), app); + if (goods != null) { + ticket.put("clickUrl", goods.getAuctionUrl()); + // 娴嬭瘯浣跨敤 + ticket.put("couponUrl", goods.getCouponLink()); + data.put("ticket", ticket); + } + + if (goods.getTkRate() == null || new BigDecimal(0).compareTo(goods.getTkRate()) == 0) { + TaoBaoGoodsBrief linkInfo = TaoKeApiUtil.specialConvertCoupon(goods.getAuctionId(), app); + if (linkInfo != null) { + goods.setAuctionUrl(linkInfo.getAuctionUrl()); + goods.setCouponLink(linkInfo.getCouponLink()); + goods.setTkRate(linkInfo.getTkRate()); + } + } + + } catch (NumberFormatException e) { + e.printStackTrace(); + } catch (TaobaoGoodsDownException e) { + ThreadUtil.run(new Runnable() { + public void run() { + taoBaoGoodsUpdateService.offlineTaoBaoGoods(Long.parseLong(id)); + } + }); + } + + } + + if (goods != null) { + goodsList.add(goods); + final TaoBaoGoodsBrief newGoods = goods; + ThreadUtil.run(new Runnable() { + public void run() { + try { + // 鏇存柊鍟嗗搧 + LogHelper.test("鏇存柊鍟嗗搧璇︽儏:" + newGoods.getAuctionId()); + taoBaoGoodsUpdateService.updateTaoBaoGoods(newGoods); + } catch (TaobaoGoodsUpdateException e) { + + } + } + }); + } TaoBaoGoodsBrief tb = null; if (goodsList.size() > 0) { tb = goodsList.get(0); - } if (tb == null) { @@ -1873,17 +1912,19 @@ for (String img : tb.getImgList()) { finalImgList.add(TbImgUtil.getTBSizeImg(img, 600)); } + if (!StringUtil.isNullOrEmpty(tb.getPictUrlWhite())) + finalImgList.add(0, tb.getPictUrlWhite()); - JSONObject goods = new JSONObject(); - goods.put("auctionId", tb.getAuctionId()); - goods.put("imgList", finalImgList); - goods.put("title", tb.getTitle()); - goods.put("userType", tb.getUserType() == 1 ? 2 : 1); - goods.put("price", tb.getReservePrice().toString()); - goods.put("zkPrice", tb.getZkPrice().toString()); + JSONObject goodsJson = new JSONObject(); + goodsJson.put("auctionId", tb.getAuctionId()); + goodsJson.put("imgList", finalImgList); + goodsJson.put("title", tb.getTitle()); + goodsJson.put("userType", tb.getUserType() == 1 ? 2 : 1); + goodsJson.put("price", tb.getReservePrice().toString()); + goodsJson.put("zkPrice", tb.getZkPrice().toString()); // 30澶╅攢閲� - goods.put("saleCount", TaoBaoUtil.getSaleCount(tb.getBiz30day())); + goodsJson.put("saleCount", TaoBaoUtil.getSaleCount(tb.getBiz30day())); // 鍒嗕韩璧� BigDecimal shareMoney = taoBaoGoodsBriefService.getShareGoodsUserHongBao(tb); @@ -1917,7 +1958,7 @@ LogHelper.test(String.format("PID: uid-%s pid-%s", uid + "", pid)); // 鏄惁鏈夊埜 - goods.put("coupon", StringUtil.isNullOrEmpty(tb.getCouponInfo()) ? false : true); + goodsJson.put("coupon", StringUtil.isNullOrEmpty(tb.getCouponInfo()) ? false : true); // 棰嗗埜浜哄垪琛� List<ShamUser> listCouponUser = new ArrayList<ShamUser>(); @@ -1946,19 +1987,21 @@ tb.setCouponLinkTaoToken(token); // 鏈嶅姟绔浆閾� - if (convertInServer && !StringUtil.isNullOrEmpty(tb.getCouponLink())) { - couponInfo.put("couponUrl", tb.getCouponLink()); - } else { - couponInfo.put("couponUrl", - TaoBaoCouponUtil.getCoupleUrl(tb.getCouponActivityId() + "", pid, tb.getAuctionId() + "")); - } + // if (convertInServer && + // !StringUtil.isNullOrEmpty(tb.getCouponLink())) { + couponInfo.put("couponUrl", tb.getCouponLink()); + // } else { + // couponInfo.put("couponUrl", + // TaoBaoCouponUtil.getCoupleUrl(tb.getCouponActivityId() + "", pid, + // tb.getAuctionId() + "")); + // } couponInfo.put("couponAmount", NumberUtil.subZeroAndDot(tb.getCouponAmount().toString())); couponInfo.put("couponTime", "浣跨敤鏈熼檺锛�" + tb.getCouponEffectiveStartTime().replace("-", ".") + "-" + tb.getCouponEffectiveEndTime().replace("-", ".")); // 鍒哥殑鍙d护 couponInfo.put("couponToken", token); - goods.put("couponInfo", couponInfo); + goodsJson.put("couponInfo", couponInfo); if (tb.getBiz30day() >= 1000) { // 棰嗗埜浜哄垪琛� @@ -1971,7 +2014,12 @@ BigDecimal proportion = manageService.getFanLiRate(); hongBao = TaoBaoUtil.getGoodsHongBaoInfo(tb, proportion); } - goods.put("hongBao", hongBao); + 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); @@ -1989,7 +2037,7 @@ else jumpUrl = tb.getAuctionUrl(); } - goods.put("jumpUrl", jumpUrl); + goodsJson.put("jumpUrl", jumpUrl); TaoBaoShopInfo tbShopInfo = redisManager.getTBShopInfo(tb.getShopTitle(), tb.getSellerId(), tb.getAuctionId()); if (tbShopInfo != null) { @@ -2001,7 +2049,17 @@ } } // 搴楅摵 - goods.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()); @@ -2015,7 +2073,7 @@ data.put("storageState", storageState); data.put("shareUrl", shareUrl); - data.put("goods", goods); + data.put("goods", goodsJson); data.put("shareUsers", listShareUser); data.put("couponUsers", listCouponUser); data.put("detailWebUrl", "http://apph5.yeshitv.com/apppage/goods_img.html?id=" + id); @@ -2139,20 +2197,48 @@ List<TaoBaoGoodsBriefExtra> listExtra = new ArrayList<TaoBaoGoodsBriefExtra>(); - goodsList.parallelStream().forEach(goods -> { - // 鑾峰彇璇︽儏 - TaoBaoGoodsBrief taoBaoGoodsBrief = null; - try { - taoBaoGoodsBrief = redisManager.getTaoBaoGoodsBrief(goods.getAuctionId()); - } catch (Exception e) { - e.printStackTrace(); - } + TaoKeAppInfo app = new TaoKeAppInfo(); + app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY); + app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET); + app.setAdzoneId(TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT.split("_")[3]); + app.setPid(TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT); - if (taoBaoGoodsBrief != null) { - listExtra.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), "")); - } + List<Long> ids = new ArrayList<>(); + for (TaoBaoGoodsBrief goods : goodsList) + ids.add(goods.getAuctionId()); - }); + try { + goodsList = TaoKeApiUtil.getBatchGoodsInfo(ids); + } catch (TaoKeApiException e1) { + e1.printStackTrace(); + } catch (TaobaoGoodsDownException e1) { + e1.printStackTrace(); + } + + if (goodsList != null) + goodsList.parallelStream().forEach(goods -> { + + // 鑾峰彇璇︽儏 + TaoBaoGoodsBrief taoBaoGoodsBrief = null; + try { + taoBaoGoodsBrief = taoBaoGoodsCacheUtil.getCommonTaoBaoGoodsInfo(goods.getAuctionId()); + } catch (Exception e) { + e.printStackTrace(); + } + + if (taoBaoGoodsBrief == null) { + TaoBaoGoodsBrief newGoods = TaoKeApiUtil.specialConvertCoupon(goods.getAuctionId(), app); + goods.setCouponInfo(newGoods.getCouponInfo()); + goods.setCouponLink(newGoods.getCouponLink()); + goods.setTkRate(newGoods.getTkRate()); + taoBaoGoodsBrief = goods; + } + + if (taoBaoGoodsBrief != null) { + listExtra.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), "")); + } + + }); List<TaoBaoGoodsBrief> listQuality = new ArrayList<TaoBaoGoodsBrief>(); // 鍒犻櫎鎺ㄨ崘 -- Gitblit v1.8.0