From f4548a3ee46afe45da4ee2a42dc169c575deee9f Mon Sep 17 00:00:00 2001 From: yujian <yujian@123.com> Date: 星期三, 31 七月 2019 11:57:36 +0800 Subject: [PATCH] 动态v2兼容 --- fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RecommendControllerV2.java | 240 +++++++++++++++++++----------------------------------------- 1 files changed, 76 insertions(+), 164 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 c4cb203..6eded12 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 @@ -6,31 +6,27 @@ import java.util.Calendar; import java.util.Collections; import java.util.List; -import java.util.Map; -import java.util.regex.Matcher; -import java.util.regex.Pattern; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; import org.yeshi.utils.JsonUtil; -import org.yeshi.utils.taobao.TbImgUtil; 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.taobao.SearchFilter; +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.TaoBaoGoodsBriefExtra; import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult; -import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetail; import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.common.JumpDetailV2Service; import com.yeshi.fanli.service.inter.config.ConfigService; @@ -40,15 +36,17 @@ 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.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.Utils; import com.yeshi.fanli.util.VersionUtil; import com.yeshi.fanli.util.factory.MonitorFactory; import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory; @@ -105,6 +103,12 @@ @Resource private SwiperPictureService swiperPictureService; + @Resource + private JDGoodsService jdGoodsService; + + @Resource + private PDDGoodsService pddGoodsService; + /** * 鏂扮増鎺ㄨ崘涓撻绠$悊(1.5.3) @@ -294,8 +298,7 @@ * @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("鍙傛暟淇℃伅涓嶆甯�")); @@ -308,39 +311,15 @@ } if (goodsType == Constant.SOURCE_TYPE_JD) { - + getIndexJDGoods(acceptData, page, out); + return; } if (goodsType == Constant.SOURCE_TYPE_PDD) { - + getIndexPDDGoods(acceptData, page, out); + return; } - - List<QualityFactory> listQuery = qualityGoodsService.listFreeGoods((page - 1) * 20, 20); - if (listQuery == null) { - listQuery = new ArrayList<QualityFactory>(); - } - - JSONArray array = new JSONArray(); - if (listQuery.size() > 0) { - Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) - .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create(); - - BigDecimal fanLiRate = hongBaoManageService.getFanLiRate(); - BigDecimal shareRate = hongBaoManageService.getShareRate(); - for (QualityFactory qualityFactory : listQuery) { - TaoBaoGoodsBrief goods = qualityFactory.getTaoBaoGoodsBrief(); - if (goods == null) { - continue; - } - array.add(gson.toJson(GoodsDetailVOFactory.convertTaoBao(goods, null, fanLiRate, shareRate))); - } - } - long count = qualityGoodsService.countFreeGoods(); - - JSONObject root = new JSONObject(); - root.put("count", count); - root.put("list", array); - out.print(JsonUtil.loadTrueResult(root)); + out.print(JsonUtil.loadFalseResult("鍟嗗搧绫诲瀷閿欒")); } @@ -392,7 +371,7 @@ ReduceHongBao reduceHongBao = new ReduceHongBao(); reduceHongBao.setLeft(goods.getLeftHongBaoCount()); reduceHongBao.setMoney(hongBao); - reduceHongBao.setName("浠樻绔嬪噺 " + hongBao); + reduceHongBao.setName("浠樻绔嬪噺 "); reduceHongBao.setTip(""); reduceHongBao.setTotal(goods.getTotalHongBaoCount()); @@ -491,139 +470,72 @@ + /** - * 绮樿创鏉夸俊鎭帹鑽� - * + * 浜笢棣栭〉鍟嗗搧 * @param acceptData - * @param url - * 鍟嗗搧閾炬帴 + * @param page * @param out */ - @RequestMapping(value = "getNewGoodsInfo", method = RequestMethod.POST) - public void getNewGoodsInfo(AcceptData acceptData, String text, PrintWriter out) { - if (StringUtil.isNullOrEmpty(text)) { - out.print(JsonUtil.loadFalseResult("鍊间负绌�")); - return; - } - - if (text.length() > 256) { - out.print(JsonUtil.loadFalseResult("鍊艰繃闀�")); - return; - } - - TaoBaoGoodsBrief tb = null; - String URL_REGEX = "(((http|https)://)|(www\\.))[a-zA-Z0-9\\._-]+\\.[a-zA-Z]{2,6}(:[0-9]{1,4})?(/[a-zA-Z0-9\\&%_\\./-~-]*)?"; - - Pattern p = Pattern.compile(URL_REGEX); - Matcher matcher = p.matcher(text); - if (!matcher.find()) {// 涓嶅寘鍚摼鎺� - // 鍟嗗搧璇︽儏 - // 鍙戠幇 - // 娌℃湁閾炬帴锛屾爣棰樿繃闀夸篃涓嶅鐞� - if (text.startsWith("銆�") && text.contains("銆�")) { - int end = text.indexOf("銆�"); - if (end > 2) - text = text.substring(1, end); + private void getIndexJDGoods(AcceptData acceptData, int page, PrintWriter out) { + JDSearchResult result = jdGoodsService.getIndexJDGoods(page); + long count = 0; + JSONObject data = new JSONObject(); + JSONArray array = new JSONArray(); + if (result != null) { + PageEntity pageEntity = result.getPageEntity(); + if (pageEntity != null) { + count = pageEntity.getTotalCount(); } - LogHelper.test("鏍规嵁绮樿创鏉挎帹鑽�:"+text); - - if (text.length() > 80) { - out.print(JsonUtil.loadFalseResult("鍊艰繃闀�")); - return; - } - - SearchFilter sf = new SearchFilter(); - sf.setKey(text); - JSONObject root = new JSONObject(); - - TaoBaoSearchResult result = TaoBaoUtil.search(sf); - if (result != null && result.getTaoBaoGoodsBriefs() != null && result.getTaoBaoGoodsBriefs().size() > 0) - for (TaoBaoGoodsBrief goods : result.getTaoBaoGoodsBriefs()) { - // 鏄睘浜庢窐瀹濊仈鐩熷晢鍝� - if (goods.getTitle().equalsIgnoreCase(text)) { - root.put("type", 2); - JSONObject data = new JSONObject(); - data.put("title", goods.getTitle()); - root.put("data", data); - out.print(JsonUtil.loadTrueResult(root)); - return; - } + List<JDGoods> goodsList = result.getGoodsList(); + if (goodsList != null && goodsList.size() > 0) { + BigDecimal fanLiRate = hongBaoManageService.getFanLiRate(); + BigDecimal shareRate = hongBaoManageService.getShareRate(); + Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()) + .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create(); + for (JDGoods goods : goodsList) { + GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertJDGoods(goods, fanLiRate, shareRate); + array.add(gson.toJson(goodsDetailVO)); } - - // 鏌ヨ澶ф窐瀹㈡爣棰� - List<DaTaoKeDetail> list = daTaoKeGoodsDetailService.listByDtitle(text); - if (list != null && list.size() > 0) { - root.put("type", 2); - JSONObject data = new JSONObject(); - data.put("title", list.get(0).getdTitle()); - root.put("data", data); - out.print(JsonUtil.loadTrueResult(root)); - return; } - - out.print(JsonUtil.loadFalseResult("鏆備笉鏀寔璇ョ被鍨嬶紒")); - return; } - text = matcher.group(); - if (text.contains("ju.taobao.com") || text.contains(".juhuasuan.com")) {// 鑱氬垝绠� - int index = text.indexOf("item_id"); - if (index < 0) { - out.println(JsonUtil.loadFalseResult("鏆傛湭鎵惧埌璇ュ晢鍝侊紝璇风◢鍚庡啀璇曪紒")); - return; - } - text = text.substring(index); - int last = text.indexOf("&"); - String id = ""; - if (last > 0) - id = text.substring(text.indexOf("=") + 1, text.indexOf("&")); - else { - id = text.substring(text.indexOf("=" + 1)); - } - tb = TaoBaoUtil.isAlimama(id); - if (tb == null) { - tb = TaoBaoUtil.parsePhoneTmAndTb(id); - } - } else if (text.contains("http://zmnxbc.com")) { // 鎵嬫満绔ぉ鐚獳PP鍒嗕韩 - tb = TaoBaoUtil.parsePhoneShareUrlByTM(text); - } else if (text.contains("h5.m.taobao") || text.contains("detail.m.tmall") || text.contains("item.taobao") - || text.contains("detail.tmall")) { // 鎵嬫満椤甸潰鍜岀數鑴戦〉闈� - Map<String, String> map = Utils.parseURL(text); - String id = ""; - id = map.get("id").replace("}", ""); - tb = TaoBaoUtil.isAlimama(id); - if (tb == null) { - tb = TaoBaoUtil.parsePhoneTmAndTb(id); - } - } else { - tb = TaoBaoUtil.parsePhoneShareUrlByTB(text); - } - - if (tb != null) { - JSONObject data = new JSONObject(); - JSONObject taoBaoGoodsJSON = new JSONObject(); - taoBaoGoodsJSON.put("title", tb.getTitle()); - taoBaoGoodsJSON.put("zkPrice", tb.getZkPrice()); - taoBaoGoodsJSON.put("auctionId", tb.getAuctionId()); - taoBaoGoodsJSON.put("url", "http://item.taobao.com/item.htm?id=" + tb.getAuctionId()); - data.put("taoBaoGoodsBrief", taoBaoGoodsJSON); - if (!StringUtil.isNullOrEmpty(tb.getPictUrl())) { - if (tb.getImgList() == null) - tb.setImgList(new ArrayList<>()); - tb.getImgList().add(0, TbImgUtil.getTBSize220Img(tb.getPictUrl())); - } - data.put("tbImgs", tb.getImgList()); - JSONObject root = new JSONObject(); - root.put("type", 1); - root.put("data", data); - - out.print(JsonUtil.loadTrueResult(root)); - } - - - out.println(JsonUtil.loadFalseResult("鏆傛湭鎵惧埌璇ュ晢鍝侊紝璇风◢鍚庡啀璇曪紒")); - return; + data.put("list", array); + data.put("count", count); + out.print(JsonUtil.loadTrueResult(data)); } + + /** + * 鐖嗘鎺掕鍟嗗搧-瀹炴椂鐑攢姒� + * @param acceptData + * @param page + * @param out + */ + private void getIndexPDDGoods(AcceptData acceptData, int page, PrintWriter out) { + PDDGoodsResult result = pddGoodsService.getIndexPDDGoods(page); + int count = 0; + JSONArray array = new JSONArray(); + if (result != null) { + count = result.getTotalCount(); + Gson gson = JsonUtil.getApiCommonGson(); + List<PDDGoodsDetail> goodsList = result.getGoodsList(); + if (goodsList != null && goodsList.size() > 0) { + BigDecimal fanLiRate = hongBaoManageService.getFanLiRate(); + BigDecimal shareRate = hongBaoManageService.getShareRate(); + + for (PDDGoodsDetail goods : goodsList) { + GoodsDetailVO goodsDetailVO = GoodsDetailVOFactory.convertPDDGoods(goods, fanLiRate, shareRate); + array.add(gson.toJson(goodsDetailVO)); + } + } + } + + JSONObject data = new JSONObject(); + data.put("list", array); + data.put("count", count); + out.print(JsonUtil.loadTrueResult(data)); + } + } -- Gitblit v1.8.0