fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserMsgController.java
@@ -39,6 +39,7 @@ import com.yeshi.fanli.entity.bus.msg.MsgInviteDetail; import com.yeshi.fanli.entity.bus.msg.MsgMoneyDetail; import com.yeshi.fanli.entity.bus.msg.MsgOrderDetail; import com.yeshi.fanli.entity.bus.msg.MsgOrderDetail.MsgTypeOrderTypeEnum; import com.yeshi.fanli.entity.bus.msg.MsgOtherDetail; import com.yeshi.fanli.entity.bus.msg.UserMsgUnReadNum; import com.yeshi.fanli.entity.bus.msg.UserSystemMsg; @@ -77,6 +78,7 @@ import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.TimeUtil; import com.yeshi.fanli.util.VersionUtil; import com.yeshi.fanli.util.account.UserUtil; import com.yeshi.fanli.util.factory.CommonGoodsFactory; import com.yeshi.fanli.util.factory.msg.UserMsgVOFactory; import com.yeshi.fanli.util.taobao.TaoKeApiUtil; @@ -193,6 +195,9 @@ for (MsgOrderDetail detail : detailList) { JSONObject params = new JSONObject(); params.put("orderNo", detail.getOrderId()); if (detail.getType() == MsgTypeOrderTypeEnum.share || detail.getType() == MsgTypeOrderTypeEnum.invite) params.put("orderHideNo", UserUtil.filterOrderId(detail.getOrderId())); list.add(UserMsgVOFactory.create(detail, jumpDetailV2Service.getByTypeCache("order_search"), params)); } @@ -739,6 +744,9 @@ for (MsgOrderDetail detail : detailList) { JSONObject params = new JSONObject(); params.put("orderNo", detail.getOrderId()); if (detail.getType() == MsgTypeOrderTypeEnum.share || detail.getType() == MsgTypeOrderTypeEnum.invite) params.put("orderHideNo", UserUtil.filterOrderId(detail.getOrderId())); UserMsgVO userMsgVO = UserMsgVOFactory.create(detail, jumpDetailV2Service.getByTypeCache("order_search"), params); userMsgVO.setType(MSG_TYPE_ORDER); fanli/src/main/java/com/yeshi/fanli/controller/client/v2/SearchControllerV2.java
@@ -16,7 +16,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.yeshi.utils.JsonUtil; import org.yeshi.utils.NumberUtil; import org.yeshi.utils.taobao.TbImgUtil; import com.google.gson.Gson; @@ -119,6 +118,8 @@ out.print(JsonUtil.loadFalseResult("值为空")); return; } //去除前后空格 text=text.trim(); if (text.length() > 256) { out.print(JsonUtil.loadFalseResult("值过长")); fanli/src/main/java/com/yeshi/fanli/service/impl/order/CommonOrderServiceImpl.java
@@ -55,6 +55,7 @@ import com.yeshi.fanli.util.factory.CommonOrderGoodsFactory; import com.yeshi.fanli.util.factory.goods.CommonOrderFactory; import com.yeshi.fanli.util.jd.JDApiUtil; import com.yeshi.fanli.util.jd.JDUtil; import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil; import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil; import com.yeshi.fanli.util.taobao.TaoBaoUtil; @@ -821,7 +822,10 @@ } else { if (!Constant.IS_OUTNET) { JDGoods goods = JDApiUtil.getGoodsDetail(itemOrder.getSkuId()); if(goods==null) goods=JDUtil.getGoodsFromWeb(itemOrder.getSkuId()); commonGoodsList.get(0).setTitle(goods.getSkuName()); commonGoodsList.get(0).setPicture(goods.getPicUrl()); commonOrderGoodsMapper.updateByPrimaryKeySelective(commonGoodsList.get(0)); } } fanli/src/main/java/com/yeshi/fanli/util/jd/JDUtil.java
@@ -9,6 +9,10 @@ import java.util.List; import java.util.Map; import javax.script.Invocable; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.methods.PostMethod; import org.jsoup.Jsoup; @@ -464,6 +468,7 @@ /** * 根据链接提取商品ID * * @param url * @return */ @@ -481,4 +486,43 @@ return null; } public static JDGoods getGoodsFromWeb(Long skuId) { String url = String.format("https://item.m.jd.com/product/%s.html", skuId + ""); try { Document doc = Jsoup.connect(url).get(); Elements scripts = doc.getElementsByTag("script"); for (int i = 0; i < scripts.size(); i++) { String content = scripts.get(i).html(); if (content.contains("window._itemOnly =")) { try { String jsContent = "var windowData={};function getData(){return JSON.stringify(windowData._itemOnly);}" + "var _itemOnly={}; " + content.replace("window.", "windowData."); System.out.println(jsContent); ScriptEngineManager m = new ScriptEngineManager(); ScriptEngine engine = m.getEngineByName("JavaScript"); engine.eval(jsContent); if (engine instanceof Invocable) { Invocable in = (Invocable) engine; String data = in.invokeFunction("getData").toString(); JSONObject root = JSONObject.fromObject(data); root = root.optJSONObject("item"); JDGoods goods = new JDGoods(); goods.setSkuId(root.optLong("skuId")); goods.setPicUrl("http://img14.360buyimg.com/n1/" + root.optJSONArray("image").optString(0)); goods.setSkuName(root.optString("skuName")); return goods; } } catch (Exception e) { e.printStackTrace(); } } } } catch (IOException e) { e.printStackTrace(); } return null; } }