From e1a62ec62e7331d97af9302e90e1ce44af8235eb Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 27 一月 2021 15:26:55 +0800 Subject: [PATCH] 拼多多授权绑定 --- fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RecommendControllerV2.java | 596 +++++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 437 insertions(+), 159 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 b256ee3..c2bfc52 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 @@ -1,5 +1,65 @@ package com.yeshi.fanli.controller.client.v2; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.yeshi.fanli.dto.ConfigParamsDTO; +import com.yeshi.goods.facade.dto.taobao.dataoke.DingDongTime; +import com.yeshi.fanli.dto.jd.JDSearchResult; +import com.yeshi.fanli.dto.pdd.PDDGoodsDetail; +import com.yeshi.fanli.dto.pdd.PDDGoodsResult; +import com.yeshi.fanli.entity.accept.AcceptData; +import com.yeshi.fanli.entity.bus.homemodule.Special; +import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum; +import com.yeshi.fanli.entity.common.JumpDetailV2; +import com.yeshi.fanli.entity.jd.JDGoods; +import com.yeshi.fanli.entity.system.ConfigKeyEnum; +import com.yeshi.fanli.entity.taobao.TLJBuyGoods; +import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief; +import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult; +import com.yeshi.goods.facade.entity.taobao.dataoke.DaTaoKeDetailV2; +import com.yeshi.fanli.log.LogHelper; +import com.yeshi.fanli.service.inter.common.JumpDetailV2Service; +import com.yeshi.fanli.service.inter.config.ConfigService; +import com.yeshi.fanli.service.inter.count.HongBaoV2CountService; +import com.yeshi.fanli.service.inter.goods.recommend.HomeRecommendGoodsService; +import com.yeshi.fanli.service.inter.goods.recommend.RecommendGoodsDeleteHistoryService; +import com.yeshi.fanli.service.inter.homemodule.DeviceSexService; +import com.yeshi.fanli.service.inter.homemodule.SpecialService; +import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService; +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.order.OrderHongBaoMoneyComputeService; +import com.yeshi.fanli.service.inter.order.config.HongBaoManageService; +import com.yeshi.fanli.service.inter.pdd.PDDGoodsService; +import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService; +import com.yeshi.goods.facade.service.DaTaoKeGoodsDetailV2Service; +import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsService; +import com.yeshi.common.entity.PageEntity; +import com.yeshi.fanli.util.*; +import com.yeshi.fanli.util.factory.MonitorFactory; +import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory; +import com.yeshi.fanli.util.taobao.DaTaoKeUtil; +import com.yeshi.fanli.util.taobao.TaoBaoUtil; +import com.yeshi.fanli.util.taobao.TaoKeApiUtil; +import com.yeshi.fanli.vo.goods.GoodsDetailVO; +import com.yeshi.fanli.vo.goods.OtherInfo; +import com.yeshi.fanli.vo.goods.SpikeTimeVO; +import com.yeshi.fanli.vo.homemodule.BannerVO; +import com.yeshi.common.vo.ClientTextStyleVO; +import com.yeshi.fanli.vo.search.SearchKeyTOPVO; +import com.yeshi.fanli.vo.search.SearchKeyVO; +import com.yeshi.fanli.vo.tlj.ReduceHongBao; +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.yeshi.utils.JsonUtil; +import org.yeshi.utils.TimeUtil; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; import java.io.PrintWriter; import java.math.BigDecimal; import java.util.ArrayList; @@ -7,66 +67,12 @@ import java.util.Collections; import java.util.List; -import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; - -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.yeshi.utils.JsonUtil; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.yeshi.fanli.dto.jd.JDSearchResult; -import com.yeshi.fanli.dto.pdd.PDDGoodsDetail; -import com.yeshi.fanli.dto.pdd.PDDGoodsResult; -import com.yeshi.fanli.entity.accept.AcceptData; -import com.yeshi.fanli.entity.bus.homemodule.SwiperPicture; -import com.yeshi.fanli.entity.bus.lable.QualityFactory; -import com.yeshi.fanli.entity.common.JumpDetailV2; -import com.yeshi.fanli.entity.jd.JDGoods; -import com.yeshi.fanli.entity.taobao.TLJBuyGoods; -import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; -import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult; -import com.yeshi.fanli.log.LogHelper; -import com.yeshi.fanli.service.inter.common.JumpDetailV2Service; -import com.yeshi.fanli.service.inter.config.ConfigService; -import com.yeshi.fanli.service.inter.goods.recommend.HomeRecommendGoodsService; -import com.yeshi.fanli.service.inter.goods.recommend.RecommendGoodsDeleteHistoryService; -import com.yeshi.fanli.service.inter.homemodule.DeviceSexService; -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; -import com.yeshi.fanli.util.RedisManager; -import com.yeshi.fanli.util.StringUtil; -import com.yeshi.fanli.util.TaoBaoConstant; -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.taobao.TaoBaoUtil; -import com.yeshi.fanli.util.taobao.TaoKeApiUtil; -import com.yeshi.fanli.vo.goods.GoodsDetailVO; -import com.yeshi.fanli.vo.goods.OtherInfo; -import com.yeshi.fanli.vo.msg.ClientTextStyleVO; -import com.yeshi.fanli.vo.tlj.ReduceHongBao; - -import net.sf.json.JSONArray; -import net.sf.json.JSONObject; - @Controller @RequestMapping("api/v2/recommend") public class RecommendControllerV2 { @Resource - private HongBaoManageService hongBaoManageService; + private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService; @Resource private QualityGoodsService qualityGoodsService; @@ -85,9 +91,6 @@ @Resource private QualityFlashSaleService qualityFlashSaleService; - - @Resource - private DaTaoKeGoodsDetailService daTaoKeGoodsDetailService; @Resource private RecommendGoodsDeleteHistoryService recommendGoodsDeleteHistoryService; @@ -113,6 +116,18 @@ @Resource private TaoBaoGoodsUpdateService taoBaoGoodsUpdateService; + @Resource + private DaTaoKeGoodsDetailV2Service daTaoKeGoodsDetailV2Service; + + @Resource + private DaTaoKeGoodsService daTaoKeGoodsService; + + @Resource + private HongBaoV2CountService hongBaoV2CountService; + + @Resource + private HongBaoManageService hongBaoManageService; + /** * 鏂扮増鎺ㄨ崘涓撻绠$悊(1.5.3) * @@ -123,47 +138,48 @@ public void getRecommendIndex(AcceptData acceptData, Long uid, PrintWriter out) { try { // 鑾峰彇璁惧瀹氫箟鎬у埆 - int deviceSex = deviceSexService.getDeviceSex(acceptData.getDevice()); + int deviceSex = deviceSexService.getDeviceSex(acceptData.getDevice(),acceptData.getSystem()); // 1銆佷笓棰樻ā鍧� - JSONObject root = specialService.listCacheSpecialToIndex(acceptData, deviceSex); + JSONObject root = specialService.listCacheSpecialToIndex(acceptData, deviceSex,acceptData.getSystem()); // 2銆侀《閮ㄨ疆鎾浘 - List<SwiperPicture> oldtopPicList = swiperPictureService.getByBannerCard("index_top"); - List<SwiperPicture> topPicList = new ArrayList<>(); + List<BannerVO> oldtopPicList = swiperPictureService.getByBannerCardAndVersion("index_top", + acceptData.getPlatform(), Integer.parseInt(acceptData.getVersion()),acceptData.getSystem()); + + List<BannerVO> 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銆侀個璇锋湁濂� - List<SwiperPicture> invitePicList = null; + List<BannerVO> invitePicList = null; if ("ios".equalsIgnoreCase(acceptData.getPlatform()) - && configService.iosOnLining(Integer.parseInt(acceptData.getVersion()))) { + && configService.iosOnLining(Integer.parseInt(acceptData.getVersion()),acceptData.getSystem())) { // 濡傛灉IOS褰撳墠鐗堟湰澶勪簬瀹℃牳鐘舵�佸氨涓嶈繑鍥� } else { - invitePicList = swiperPictureService.getByBannerCard("index_invite"); + invitePicList = swiperPictureService.getByBannerCardAndVersion("index_invite", acceptData.getPlatform(), + Integer.parseInt(acceptData.getVersion()),acceptData.getSystem()); } if (invitePicList == null) { - invitePicList = new ArrayList<SwiperPicture>(); + invitePicList = new ArrayList<BannerVO>(); } 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("htmlLink", configService.getValue(ConfigKeyEnum.indexHtmlLinkIos.getKey(),acceptData.getSystem())); } root.put("spikeGoods", getSpikeGoodsContent(acceptData)); if (VersionUtil.greaterThan_1_6_5(acceptData.getPlatform(), acceptData.getVersion())) root.put("scoreExchange", getScoreExchangeInfo(acceptData)); + + if (VersionUtil.greaterThan_2_0(acceptData.getPlatform(), acceptData.getVersion())) + root.put("searchDiscovery", getSearchDiscoveryInfo(acceptData)); out.print(JsonUtil.loadTrueResult(root)); } catch (Exception e) { @@ -189,44 +205,39 @@ } 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; + long nowTime = System.currentTimeMillis(); + Calendar calendar = Calendar.getInstance(); + calendar.setTimeInMillis(nowTime); + List<DingDongTime> dtoList = DaTaoKeUtil.getDingDongQiangTime(calendar); + int dateNum = Integer.parseInt(TimeUtil.getGernalTime(nowTime, "ddHH")); + String timeStr = null; + int nextPos = 0; + for (int i = 0; i < dtoList.size() - 1; i++) { + if (dateNum >= Integer.parseInt(dtoList.get(i).getTime()) + && dateNum < Integer.parseInt(dtoList.get(i + 1).getTime())) { + timeStr = dtoList.get(i).getTime(); + nextPos = i + 1; + 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); + if (timeStr == null) + timeStr = dtoList.get(dtoList.size() - 1).getTime(); + + long nextTime = nowTime + 1000 * 60 * 60L;// 榛樿涓�1灏忔椂 + if (nextPos < dtoList.size()) { + nextTime = TimeUtil.convertToTimeTemp( + TimeUtil.getGernalTime(nowTime, "yyyyMM") + dtoList.get(nextPos).getTime(), "yyyyMMddHH"); + } JSONArray array = null; - String timekey = String.format("spikeGoods_hour_new-%s-%s", acceptData.getPlatform(), acceptData.getVersion()); - String cachekey = String.format("spikeGoodsList_new-%s-%s", acceptData.getPlatform(), acceptData.getVersion()); + String timekey = RedisKeyEnum.getRedisKey(RedisKeyEnum.spikeGoodsHourNew,acceptData.getPlatform() +"-"+acceptData.getVersion()); + String cachekey = RedisKeyEnum.getRedisKey(RedisKeyEnum.spikeGoodsListNew,acceptData.getPlatform() +"-"+acceptData.getVersion()); + + + Calendar nowCalendar = Calendar.getInstance(); + nowCalendar.setTimeInMillis(nowTime); + int hour = nowCalendar.get(Calendar.HOUR_OF_DAY); String timeValue = redisManager.getCommonString(timekey); if (timeValue == null || !timeValue.equals(hour + "")) { @@ -237,34 +248,42 @@ array = JSONArray.fromObject(cacheValue); } } - JumpDetailV2 jumpDetail = jumpDetailV2Service.getByTypeCache("web"); + + JumpDetailV2 jumpDetail = null; + if (VersionUtil.greaterThan_2_0_2(acceptData.getPlatform(), acceptData.getVersion())) { + jumpDetail = jumpDetailV2Service.getByTypeCache("spike_goods_list"); + } else { + jumpDetail = jumpDetailV2Service.getByTypeCache("web"); + } + if (array == null) { array = new JSONArray(); - - BigDecimal fanLiRate = hongBaoManageService.getFanLiRate(); - BigDecimal shareRate = hongBaoManageService.getShareRate(); - Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create(); // 缂撳瓨涓笉瀛樺湪 - List<QualityFactory> listGoods = qualityGoodsService.listFlashSaleRandGoods(); + List<DaTaoKeDetailV2> listGoods = daTaoKeGoodsDetailV2Service.getDingDongQiangData(timeStr); if (listGoods == null) { - listGoods = new ArrayList<QualityFactory>(); + listGoods = new ArrayList<>(); } + + if (listGoods != null && listGoods.size() > 3) + listGoods = listGoods.subList(0, 3); /* 閬嶅巻鍒楄〃鏁版嵁 */ - for (QualityFactory qualityFactory : listGoods) { - TaoBaoGoodsBrief taoBaoGoodsBrief = qualityFactory.getTaoBaoGoodsBrief(); + ConfigParamsDTO configParamsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(), + acceptData.getVersion(),acceptData.getSystem()); + + for (DaTaoKeDetailV2 detail : listGoods) { + TaoBaoGoodsBrief taoBaoGoodsBrief = TaoBaoUtil.convert(detail); if (taoBaoGoodsBrief == null) { continue; } - GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, null, fanLiRate, - shareRate); + GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, configParamsDTO); JSONObject params = new JSONObject(); - params.put("url", configService.get("spike_goods_link") + "?id=" + taoBaoGoodsBrief.getAuctionId()); + params.put("url", configService.getValue(ConfigKeyEnum.spikeGoodsLink.getKey(),acceptData.getSystem()) + "?id=" + taoBaoGoodsBrief.getAuctionId()); JSONObject goods = new JSONObject(); goods.put("goods", gson.toJson(detailVO)); @@ -282,11 +301,15 @@ // 缂撳瓨鍗婁釜灏忔椂 redisManager.cacheCommonString(cachekey, array.toString(), 60 * 30); } - Long endTime = nextTime.getTimeInMillis() - java.lang.System.currentTimeMillis(); + + // 鑾峰彇浠婂ぉ鐨勬暟鎹� + + Long endTime = nextTime - nowTime; JSONObject root = new JSONObject(); + if (VersionUtil.greaterThan_1_6_5(acceptData.getPlatform(), acceptData.getVersion())) { - root.put("time", nextTime.getTimeInMillis()); + root.put("time", nextTime); root.put("endTime", endTime > 0 ? endTime : 0); JSONArray imgArray = new JSONArray(); if (array != null) @@ -295,22 +318,99 @@ } root.put("imgList", imgArray); JSONObject params = new JSONObject(); - params.put("url", configService.get("spike_goods_link")); + params.put("url", configService.getValue(ConfigKeyEnum.spikeGoodsLink.getKey(),acceptData.getSystem())); root.put("params", params); root.put("jumpDetail", jumpDetail); root.put("name", "闄愭椂绉掓潃"); root.put("desc", "鏁寸偣鏇存柊锛屽ソ鐗╂姠璐�"); } else { - root.put("time", nextTime.getTimeInMillis()); + root.put("time", nextTime); root.put("endTime", endTime > 0 ? endTime : 0); root.put("listgoods", array); JSONObject params = new JSONObject(); - params.put("url", configService.get("spike_goods_link")); + params.put("url", configService.getValue(ConfigKeyEnum.spikeGoodsLink.getKey(),acceptData.getSystem())); root.put("params", params); root.put("jumpDetail", jumpDetail); } + root.put("time", nextTime); + root.put("endTime", endTime > 0 ? endTime : 0); + root.put("listgoods", array); + return root; + } + + /** + * 闄愭椂绉掓潃鍒楄〃 + * + * @param acceptData + * @param out + */ + @RequestMapping("getSpikTime") + public void getSpikTime(AcceptData acceptData, PrintWriter out) { + List<DingDongTime> timeList = DaTaoKeUtil.getDingDongQiangTime(Calendar.getInstance()); + List<SpikeTimeVO> list = new ArrayList<SpikeTimeVO>(); + for (int i = 0; i < timeList.size(); i++) { + SpikeTimeVO spikeTime1 = new SpikeTimeVO(); + spikeTime1.setTime(timeList.get(i).getTime().subSequence(2, 4) + ":00"); + if (timeList.get(i).getState() <= 0) + spikeTime1.setState("杩涜涓�"); + else + spikeTime1.setState("鍗冲皢寮�濮�"); + if (timeList.get(i).getState() == 0) + spikeTime1.setChecked(true); + spikeTime1.setRequestTime(timeList.get(i).getTime()); + list.add(spikeTime1); + } + + JSONObject data = new JSONObject(); + data.put("count", list.size()); + data.put("list", list); + out.print(JsonUtil.loadTrueResult(data)); + } + + /** + * 闄愭椂绉掓潃鍒楄〃 + * + * @param acceptData + * @param page + * @param out + */ + @RequestMapping("getSpikeGoodsList") + public void getSpikeGoodsList(AcceptData acceptData, Integer page, Long goodsId, String qtime, PrintWriter out) { + List<DaTaoKeDetailV2> detailList0 = daTaoKeGoodsDetailV2Service.getDingDongQiangData(qtime); + if (detailList0 == null) + detailList0 = new ArrayList<>(); + + List<DaTaoKeDetailV2> detailList = new ArrayList<>(); + detailList.addAll(detailList0); + JSONArray array = new JSONArray(); + if (page == 1 && goodsId != null && detailList != null) { + for (int i = 0; i < detailList.size(); i++) { + if (detailList.get(i).getGoodsId().longValue() == goodsId) { + DaTaoKeDetailV2 goods = detailList.get(i); + detailList.remove(i); + detailList.add(0, goods); + break; + } + } + } + + Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) + .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create(); + if (detailList != null) { + ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(), + acceptData.getVersion(),acceptData.getSystem()); + + for (DaTaoKeDetailV2 detail : detailList) { + array.add(gson.toJson(GoodsDetailVOFactory.convertTaoBao(TaoBaoUtil.convert(detail), paramsDTO))); + } + } + + JSONObject data = new JSONObject(); + data.put("count", detailList.size()); + data.put("list", array); + out.print(JsonUtil.loadTrueResult(data)); } /** @@ -323,21 +423,56 @@ JSONObject root = new JSONObject(); JSONArray array = new JSONArray(); - array.add( - "https://gw.alicdn.com/bao/uploaded/i2/72768346/O1CN01rwRcUH2BWW6oc01hd_!!0-item_pic.jpg_180x180xz.jpg_.webp"); - array.add( - "https://gw.alicdn.com/bao/uploaded/i2/479184430/O1CN01HjEq4j1iaz7HbWeX9_!!479184430.jpg_180x180xz.jpg_.webp"); + 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("url", configService.get("spike_goods_link")); - + params.put("balanceMore", true); root.put("params", params); - root.put("jumpDetail", jumpDetailV2Service.getByTypeCache("web", + 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 + * @return + */ + private JSONObject getSearchDiscoveryInfo(AcceptData acceptData) { + JSONArray array = new JSONArray(); + String keys = configService.getSearchDiscoveryKeys(acceptData.getSystem()); + if (!StringUtil.isNullOrEmpty(keys)) { + JSONArray arrayKeys = JSONArray.fromObject(keys); + for (int i = 0; i < arrayKeys.size(); i++) { + String name = arrayKeys.get(i).toString(); + JSONObject params = new JSONObject(); + params.put("content", name); + + SearchKeyVO keyVO = new SearchKeyVO(); + keyVO.setName(name); + keyVO.setParams(params.toString()); + array.add(keyVO); + } + } + + JSONObject params = new JSONObject(); + params.put("url", configService.getValue(ConfigKeyEnum.searchDiscoveryH5Link.getKey(),acceptData.getSystem())); + + JSONObject root = new JSONObject(); + root.put("picture", "http://img.flqapp.com/resource/home_search_found.png"); + root.put("params", params); + root.put("jumpDetail", jumpDetailV2Service.getByTypeCache("web", + Constant.getPlatformCode(acceptData.getPlatform()), Integer.parseInt(acceptData.getVersion()))); + + root.put("jumpResult", jumpDetailV2Service.getByTypeCache("search_goods_result", + Constant.getPlatformCode(acceptData.getPlatform()), Integer.parseInt(acceptData.getVersion()))); + root.put("keyList", array); return root; } @@ -383,12 +518,10 @@ /** * 鏍规嵁璁惧淇℃伅鑾峰彇鐚滀綘鍠滄鐨勫唴瀹� - * * @param acceptData - * @param imei - * -Android鐨処MEI淇℃伅 - * @param idfa - * -IOS鐨刬dfa骞垮憡鏍囪瘑淇℃伅 + * @param page + * @param request + * @param out */ public void taoBaoGuessUserLikeByDevice(AcceptData acceptData, int page, HttpServletRequest request, PrintWriter out) { @@ -409,10 +542,11 @@ } } - BigDecimal fanLiRate = hongBaoManageService.getFanLiRate(); - BigDecimal shareRate = hongBaoManageService.getShareRate(); + ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(), + acceptData.getVersion(),acceptData.getSystem()); + for (TaoBaoGoodsBrief goods : goodsList) { - GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(goods, null, fanLiRate, shareRate); + GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(goods, paramsDTO); if (page < 3) detailVO.setRecommend(true); @@ -425,15 +559,16 @@ if (page == 1) { List<TLJBuyGoods> list = homeRecommendGoodsService.getZiGouLiJianHotGoods(acceptData.getDevice()); - if (list != null && list.size() > 0) + if (list != null && list.size() > 0) { + BigDecimal rateBuy = TaoBaoConstant.OWN_BUY_WITHOUT_FANLI_RATE; + ConfigParamsDTO paramsBuy = new ConfigParamsDTO(rateBuy, rateBuy, Constant.MAX_REWARD_RATE, + hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP,acceptData.getSystem())); 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); + GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(goods.getGoods(), paramsBuy); String hongBao = TaoBaoUtil.getGoodsHongBaoInfo(goods.getGoods(), - TaoBaoConstant.OWN_BUY_WITHOUT_FANLI_RATE); + TaoBaoConstant.OWN_BUY_WITHOUT_FANLI_RATE,false); ReduceHongBao reduceHongBao = new ReduceHongBao(); reduceHongBao.setLeft(goods.getLeftHongBaoCount()); @@ -450,6 +585,7 @@ detailVO.setRecommend(true); array.add(0, gson.toJson(detailVO)); } + } } JSONObject data = new JSONObject(); @@ -465,7 +601,7 @@ if (!StringUtil.isNullOrEmpty(imei) || !StringUtil.isNullOrEmpty(idfa)) { long startTime = java.lang.System.currentTimeMillis(); - TaoBaoSearchResult result = TaoKeApiUtil.guessDeviceLike(page, 50, imei, idfa); + TaoBaoSearchResult result = TaoKeApiUtil.guessDeviceLike(page, 50, imei, idfa,""); if (result != null && result.getTaoBaoGoodsBriefs() != null) { // 绛涢�� @@ -476,23 +612,21 @@ // filter try { - gList = daTaoKeGoodsDetailService.filterTaoBaoGoods(gList); + gList = daTaoKeGoodsDetailV2Service.filterTaoBaoGoods(gList); } catch (Exception e) { } // 璁惧鎺ㄨ崘 if (gList != null) { - BigDecimal fanLiRate = hongBaoManageService.getFanLiRate(); - BigDecimal shareRate = hongBaoManageService.getShareRate(); - + ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(), + acceptData.getVersion(),acceptData.getSystem()); 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, paramsDTO); detailVO.setRecommend(true); goodsList.add(detailVO); } @@ -520,10 +654,10 @@ } } } - JSONArray localArray = qualityGoodsService.getRecommendToIndexV2((page - 1) * pageSize, pageSize); + JSONArray localArray = qualityGoodsService.getRecommendToIndexV2((page - 1) * pageSize, pageSize,acceptData.getPlatform(),acceptData.getVersion(),acceptData.getSystem()); array.addAll(localArray); } else {// 浠庣簿閫夊簱鏉� - array = qualityGoodsService.getRecommendToIndexV2((page - 1) * pageSize, pageSize); + array = qualityGoodsService.getRecommendToIndexV2((page - 1) * pageSize, pageSize,acceptData.getPlatform(),acceptData.getVersion(),acceptData.getSystem()); if (array == null) { out.print(JsonUtil.loadFalseResult("娌℃湁鏇村浜�")); return; @@ -544,7 +678,7 @@ * @param out */ private void getIndexJDGoods(AcceptData acceptData, int page, PrintWriter out) { - JDSearchResult result = jdGoodsService.getIndexJDGoods(page); + JDSearchResult result = jdGoodsService.getIndexJDGoods(page,acceptData.getSystem()); long count = 0; JSONObject data = new JSONObject(); JSONArray array = new JSONArray(); @@ -556,12 +690,13 @@ List<JDGoods> goodsList = result.getGoodsList(); if (goodsList != null && goodsList.size() > 0) { - BigDecimal fanLiRate = hongBaoManageService.getFanLiRate(); - BigDecimal shareRate = hongBaoManageService.getShareRate(); + ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(), + acceptData.getVersion(),acceptData.getSystem()); + Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create(); for (JDGoods goods : goodsList) { - GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertJDGoods(goods, fanLiRate, shareRate); + GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertJDGoods(goods, paramsDTO); array.add(gson.toJson(goodsDetailVO)); } } @@ -588,11 +723,11 @@ Gson gson = JsonUtil.getApiCommonGson(); List<PDDGoodsDetail> goodsList = result.getGoodsList(); if (goodsList != null && goodsList.size() > 0) { - BigDecimal fanLiRate = hongBaoManageService.getFanLiRate(); - BigDecimal shareRate = hongBaoManageService.getShareRate(); + ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(), + acceptData.getVersion(),acceptData.getSystem()); for (PDDGoodsDetail goods : goodsList) { - GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertPDDGoods(goods, fanLiRate, shareRate); + GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertPDDGoods(goods, paramsDTO); array.add(gson.toJson(goodsDetailVO)); } } @@ -604,4 +739,147 @@ out.print(JsonUtil.loadTrueResult(data)); } + /** + * 鎼滅储鍙戠幇鍒楄〃 + * + * @param acceptData + * @param uid + * @param page + * @param out + */ + @RequestMapping(value = "getSearchDiscoveryTop") + public void getSearchDiscoveryTop(AcceptData acceptData, Long uid, Integer page, String callback, PrintWriter out) { + int count = 0; + List<SearchKeyTOPVO> list = new ArrayList<SearchKeyTOPVO>(); + + String keys = configService.getSearchDiscoveryKeys(acceptData.getSystem()); + if (!StringUtil.isNullOrEmpty(keys)) { + JSONArray arrayKeys = JSONArray.fromObject(keys); + if (arrayKeys != null && arrayKeys.size() > 0) { + count = arrayKeys.size(); + ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(), + acceptData.getVersion(),acceptData.getSystem()); + + int j = 1; + for (int i = (page - 1) * 3; i < arrayKeys.size(); i++) { + if (j > 3) + break; + + String words = arrayKeys.get(i).toString(); + List<GoodsDetailVO> listGoods = new ArrayList<GoodsDetailVO>(); + + List<DaTaoKeDetailV2> listTaoKe = daTaoKeGoodsService.getSearchDiscoveryGoods(words); + if (listTaoKe != null && listTaoKe.size() > 0) { + for (DaTaoKeDetailV2 daTaoKeDetailV2 : listTaoKe) { + listGoods.add( + GoodsDetailVOFactory.convertTaoBao(TaoBaoUtil.convert(daTaoKeDetailV2), paramsDTO)); + if (listGoods.size() >= 3) + break; + } + } + + SearchKeyTOPVO keyTOPVO = new SearchKeyTOPVO(); + keyTOPVO.setName(words); + keyTOPVO.setListGoods(listGoods); + list.add(keyTOPVO); + + j++; + } + } + } + + GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation(); + Gson gson = gsonBuilder.create(); + JSONObject data = new JSONObject(); + data.put("count", count); + data.put("list", gson.toJson(list)); + if (!StringUtil.isNullOrEmpty(callback)) { + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); + } else + out.print(JsonUtil.loadTrueResult(data)); + } + + /** + * 鑾峰彇涓撻娓犻亾娲诲姩 + * + * @param acceptData + * @param uid + * @param callback + * @param out + */ + @RequestMapping(value = "getSpecialChannelActivity") + public void getSpecialChannelActivity(AcceptData acceptData, Long uid, String callback, PrintWriter out) { + + int platformCode = Constant.getPlatformCode(acceptData.getPlatform()); + + List<Special> list = specialService.listByPlaceKey("special_channel_activity", platformCode, + Integer.parseInt(acceptData.getVersion()),acceptData.getSystem()); + + long time = System.currentTimeMillis(); + // 鍒犻櫎灏氭湭鍚敤鐨勮繃鏈熺殑 + for (int i = 0; i < list.size(); i++) { + Special special = list.get(i); + if (special.getState() == 1L) { + list.remove(i--); + } else { + if (special.getStartTime() != null && special.getEndTime() != null) { + if (time < special.getStartTime().getTime() || time > special.getEndTime().getTime()) { + list.remove(i--); + } else// 璁剧疆鍊掕鏃� + { + special.setCountDownTime((special.getEndTime().getTime() - time) / 1000); + } + } + } + } + + GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation(); + Gson gson = gsonBuilder.create(); + JSONObject data = new JSONObject(); + data.put("count", list.size()); + data.put("list", gson.toJson(list)); + if (!StringUtil.isNullOrEmpty(callback)) { + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); + } else + out.print(JsonUtil.loadTrueResult(data)); + } + + /** + * 鑾峰彇涓撻娓犻亾娲诲姩 + * + * @param acceptData + * @param uid + * @param out + */ + @RequestMapping(value = "getGuide") + public void getGuide(AcceptData acceptData, Long uid, PrintWriter out) { + String tips = null; + if (uid == null || uid <= 0) { + tips = configService.getValue(ConfigKeyEnum.tipGuideNewUser.getKey(),acceptData.getSystem()); + } else { + long rebateOrder = hongBaoV2CountService.countRebateOrder(uid); + long shareOrInviteOrder = hongBaoV2CountService.countShareOrInviteOrder(uid); + if (rebateOrder + shareOrInviteOrder >= 3) { + // 鐔熷鐗� + } else if (rebateOrder <= 0 && shareOrInviteOrder <= 0) { + // 鏂颁汉鐗� + tips = configService.getValue(ConfigKeyEnum.tipGuideNewUser.getKey(),acceptData.getSystem()); + } else if (rebateOrder > 0 && shareOrInviteOrder <= 0) { + // 鐪侀挶鐗� + tips = configService.getValue(ConfigKeyEnum.tipGuideSaveMoney.getKey(),acceptData.getSystem()); + } else { + // 璧氶挶鐗� + tips = configService.getValue(ConfigKeyEnum.tipGuideShareInvite.getKey(),acceptData.getSystem()); + } + } + + if (StringUtil.isNullOrEmpty(tips)) { + out.print(JsonUtil.loadFalseResult("鏆傛棤鎻愮ず")); + return; + } + + JSONObject data = JSONObject.fromObject(tips); + out.print(JsonUtil.loadTrueResult(data)); + } + } -- Gitblit v1.8.0