From bb3bdeae38ee40dbdd802634b2d4549790b9aa92 Mon Sep 17 00:00:00 2001 From: yujian <yujian> Date: 星期五, 12 四月 2019 11:39:06 +0800 Subject: [PATCH] 1.5.3 需求提交 --- fanli/src/main/java/com/yeshi/fanli/controller/client/RecommendController.java | 278 +++++++++++++++++++++++++++++++------------------------ 1 files changed, 157 insertions(+), 121 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..550ec02 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,8 +7,8 @@ import java.util.Calendar; import java.util.Collections; import java.util.Date; +import java.util.Iterator; import java.util.List; -import java.util.Map; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -28,11 +28,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,7 +53,6 @@ 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; @@ -74,7 +73,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,6 +83,7 @@ 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; @@ -100,11 +99,11 @@ 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.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.user.UserSettingsVO; @@ -213,11 +212,13 @@ @Resource private UserInfoExtraService userInfoExtraService; + + @Resource + private QualityFlashSaleService qualityFlashSaleService; + @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 +565,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 +967,6 @@ ClientTBPid clientTBPid = null; // 鐢ㄦ埛宸茬粡鐧诲綍 if (!StringUtil.isNullOrEmpty(uid)) { - TBPid tbPid = null; if (acceptData.getPlatform().equalsIgnoreCase("android")) { clientTBPid = tbPidService.getAndroidDefault(); } else { @@ -1288,7 +1288,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 +1329,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,9 +1554,7 @@ root.put("invite", invite); } } - out.print(JsonUtil.loadTrueResult(root)); - } @@ -1571,18 +1566,84 @@ */ @RequestMapping(value = "getRecommendIndex") public void getRecommendIndex(AcceptData acceptData, Long uid, PrintWriter out) { + try { + // 涓撻妯″潡 + JSONObject root = specialService.listCacheSpecialToIndex(); - BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(), - acceptData.getPackages()); - if (system == null) { - out.print(JsonUtil.loadFalseResult(1, "绯荤粺涓嶅瓨鍦�")); - return; + // 椤堕儴杞挱鍥� + 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); + if (invitePicList == null) { + invitePicList = new ArrayList<SwiperPicture>(); + } + root.put("invitePicList", JsonUtil.getApiCommonGson().toJson(invitePicList)); + + // 搴曢儴缃戦〉閾炬帴 + String platform = acceptData.getPlatform(); + if ("ios".equalsIgnoreCase(platform)) { + root.put("htmlLink", configService.get("index_html_link_ios")); + } + + 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"); + + 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(); + } + } + + 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,112 +1652,87 @@ } e.printStackTrace(); } - - if (swiperList == null) { - swiperList = new ArrayList<SwiperPicture>(); + return swiperList; + } + + + /** + * 闄愭椂绉掓潃 1.5.3 + * + * @param acceptData + * @param out + */ + @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); - 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(); - } - - - /* 闄愭椂绉掓潃 - 鏃堕棿澶勭悊 */ - 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; - } - } - - 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); - } - 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); - - // 澧炲姞閭�璇锋湁濂� - 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褰撳墠鐗堟湰澶勪簬瀹℃牳鐘舵�佸氨涓嶈繑鍥� + 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 { - - // 鎸夌収鐗堟湰杩斿洖锛岀増鏈鐩栬冻澶熷悗鍙垹闄� - 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); + 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); out.print(JsonUtil.loadTrueResult(root)); - } -- Gitblit v1.8.0