yujian
2019-12-17 30cba46c3a27a307f5658f1078f927f6b7100e00
兼容京东领券链接
5个文件已修改
73 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/admin/AppPageNotificationAdminController.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/InviteGetMoneyController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/InviteControllerV2.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/SearchControllerV2.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/jd/JDUtil.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/admin/AppPageNotificationAdminController.java
@@ -79,6 +79,10 @@
                return;
            }
            
            if (!canClose && StringUtil.isNullOrEmpty(contentUrl)) {
                JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("跳转链接不能为空"));
                return;
            }
            
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
            
@@ -145,6 +149,11 @@
            
            if (canClose && !StringUtil.isNullOrEmpty(appPageNotification.getContentUrl())) {
                JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("跳转链接和允许关闭不可同时存在"));
                return;
            }
            if (!canClose && StringUtil.isNullOrEmpty(appPageNotification.getContentUrl())) {
                JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("跳转链接不能为空"));
                return;
            }
            
@@ -285,6 +294,11 @@
                return;
            }
            
            if (!canClose && StringUtil.isNullOrEmpty(resultObj.getContentUrl())) {
                JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("跳转链接不能为空"));
                return;
            }
            AppPageNotification newOBj = new AppPageNotification();
            newOBj.setId(resultObj.getId());
            newOBj.setCanClose(canClose);
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/InviteGetMoneyController.java
@@ -170,6 +170,7 @@
     * @throws NotExistObjectException
     * @throws IOException
     */
    @RequestSerializableByKey(key = "'listInviteFriendImg-'+#uid")
    @RequestMapping(value = "/listInviteFriendImg", method = RequestMethod.POST)
    public void listInviteFriendImg(AcceptData acceptData, Long uid, PrintWriter out, HttpServletRequest request)
            throws NotExistObjectException, IOException {
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/InviteControllerV2.java
@@ -563,7 +563,7 @@
    }
    
    
    @RequestSerializableByKey(key = "'getInviteImgs-'+#uid")
    @RequestMapping(value = "/getInviteImgs", method = RequestMethod.POST)
    public void getInviteImgs(AcceptData acceptData, Long uid, Integer page, PrintWriter out, HttpServletRequest request) {
        if (uid == null || uid <= 0) {
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/SearchControllerV2.java
@@ -255,10 +255,17 @@
            if (tb == null)// 淘宝是空值
            {
                String jdId = JDUtil.getJDGoodsId(text);
                // 微信链接
                if (StringUtil.isNullOrEmpty(jdId)) {
                    jdId = JDUtil.getJDGoodsIdByWeiXin(text);
                }
                
                // 领券短连接
                if (StringUtil.isNullOrEmpty(jdId) && text.contains("u.jd.com")) {
                    jdId = JDUtil.getJDGoodsIdByUJD(text);
                }
                if (!StringUtil.isNullOrEmpty(jdId)) {
                    JDGoods goods = JDApiUtil.getGoodsDetail(Long.parseLong(jdId));
                    if (goods != null) {
fanli/src/main/java/com/yeshi/fanli/util/jd/JDUtil.java
@@ -655,6 +655,51 @@
        return null;
    }
    
    /**
     * 根据 u.jd短连接获取真实的商品id
     * @param url
     * @return
     */
    public static String getJDGoodsIdByUJD(String url) {
        try {
            String body =  HttpUtil.get(url);
            Document doc = Jsoup.parse(body);
            Elements els = doc.getElementsByTag("script");
            for (int i = 0; i < els.size(); i++) {
                String content = els.get(i).html();
                if (content.indexOf("var hrl") > -1) {
                    ScriptEngineManager manager = new ScriptEngineManager();
                    ScriptEngine engine = manager.getEngineByName("javascript");
                    int indexOf = content.indexOf("var hrl");
                    content = content.substring(indexOf, content.length());
                    int indexOf2 = content.indexOf(";");
                    content = content.substring(0, indexOf2+1);
                    String js = "function getData(){return  JSON.stringify(hrl);}" + content;
                    engine.eval(js);
                    if (engine instanceof Invocable) {
                        Invocable in = (Invocable) engine;
                        String data = in.invokeFunction("getData").toString();
                        String link = data.substring(1, data.length()-1);
                        String realLink = HttpUtil.getLocation(link);
                        realLink = realLink.substring(realLink.indexOf("sku=") + 4, realLink.length());
                        return realLink.substring(0, realLink.indexOf("&"));
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
    /**
     * 查询天猫商品图片、标题
     * 
@@ -844,5 +889,9 @@
        }
        return getShowCouponInfo(goods.getCouponInfoList(), price);
    }
}