admin
2019-08-06 9a78d406f8b821117c78a1bc717fe4b5813656b1
首页底部推荐,详情页猜你喜欢异常保护
11个文件已修改
816 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/CallBackController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/RecommendController.java 227 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsControllerV2.java 275 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RecommendControllerV2.java 124 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/entity/taobao/TaoBaoGoodsBrief.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/recommend/HomeRecommendGoodsServiceImpl.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TLJBuyGoodsServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoGoodsUpdateServiceImpl.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/taobao/TaoBaoGoodsUpdateService.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/CMQManager.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/CallBackController.java
@@ -145,4 +145,9 @@
        out.print("success");
    }
    @RequestMapping(value = "vip")
    public void VIP(PrintWriter out) {
        out.print("success");
    }
}
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/RecommendController.java
@@ -1190,9 +1190,9 @@
    }
    // 获取浏览记录
    @RequestMapping(value = "getscanhistory", method = RequestMethod.POST)
    @RequestMapping(value = "getscanhistory", method = RequestMethod.POST)
    public void getScanHistory(AcceptData acceptData, String uid, int page, PrintWriter out) {
        if (page < 0) {
            out.print(JsonUtil.loadFalseResult(1, "page不小于0"));
            return;
@@ -1204,45 +1204,55 @@
            out.print(JsonUtil.loadFalseResult(1, "不存在该系统"));
            return;
        }
        List<ScanHistoryV2> list = scanHistoryV2Service.getScanHistoryByDeviceOrUid(
                        StringUtil.isNullOrEmpty(uid) ? null : Long.parseLong(uid), acceptData.getDevice(), page, 20, Constant.SOURCE_TYPE_TAOBAO);
        long count = scanHistoryV2Service.getCountByDeviceOrUid(
                        StringUtil.isNullOrEmpty(uid) ? null : Long.parseLong(uid), acceptData.getDevice(), Constant.SOURCE_TYPE_TAOBAO);
        try {
            List<ScanHistoryV2> list = scanHistoryV2Service.getScanHistoryByDeviceOrUid(
                    StringUtil.isNullOrEmpty(uid) ? null : Long.parseLong(uid), acceptData.getDevice(), page, 20,
                    Constant.SOURCE_TYPE_TAOBAO);
            long count = scanHistoryV2Service.getCountByDeviceOrUid(
                    StringUtil.isNullOrEmpty(uid) ? null : Long.parseLong(uid), acceptData.getDevice(),
                    Constant.SOURCE_TYPE_TAOBAO);
        JSONObject data = new JSONObject();
        data.put("count", count);
        JSONArray array = new JSONArray();
            JSONObject data = new JSONObject();
            data.put("count", count);
            JSONArray array = new JSONArray();
        GsonBuilder gsonBuilder = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder());
        gsonBuilder.excludeFieldsWithoutExposeAnnotation();
        gsonBuilder.registerTypeAdapter(Date.class, new JsonSerializer<Date>() {
            @Override
            public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) {
                if (value == null) {
                    return new JsonPrimitive("");
                } else {
                    return new JsonPrimitive(value.getTime() + "");
            GsonBuilder gsonBuilder = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder());
            gsonBuilder.excludeFieldsWithoutExposeAnnotation();
            gsonBuilder.registerTypeAdapter(Date.class, new JsonSerializer<Date>() {
                @Override
                public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) {
                    if (value == null) {
                        return new JsonPrimitive("");
                    } else {
                        return new JsonPrimitive(value.getTime() + "");
                    }
                }
            });
            Gson gson = gsonBuilder.create();
            if (list != null) {
                BigDecimal proportion = manageService.getFanLiRate();
                for (ScanHistoryV2 sh : list) {
                    TaoBaoGoodsBrief goods = TaoBaoUtil.convert(sh.getCommonGoods());
                    goods.setId(sh.getId());
                    TaoBaoGoodsBriefExtra extra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goods, proportion.toString(), "");
                    extra.setCreatetime(sh.getCreateTime());
                    array.add(gson.toJson(extra));
                }
            }
        });
        Gson gson = gsonBuilder.create();
        if (list != null) {
            BigDecimal proportion = manageService.getFanLiRate();
            for (ScanHistoryV2 sh : list) {
                TaoBaoGoodsBrief goods = TaoBaoUtil.convert(sh.getCommonGoods());
                goods.setId(sh.getId());
                TaoBaoGoodsBriefExtra extra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goods, proportion.toString(), "");
                extra.setCreatetime(sh.getCreateTime());
                array.add(gson.toJson(extra));
            }
            data.put("data", array);
            out.print(JsonUtil.loadTrueResult(data));
            return;
        } catch (Exception e) {
            LogHelper.errorDetailInfo(e);
            JSONObject data = new JSONObject();
            data.put("data", new JSONArray());
            data.put("count", 0);
            out.print(JsonUtil.loadTrueResult(data));
        }
        data.put("data", array);
        out.print(JsonUtil.loadTrueResult(data));
        return;
    }
    @RequestMapping(value = "deletescanhistory", method = RequestMethod.POST)
@@ -1341,6 +1351,7 @@
            HttpServletRequest request, PrintWriter out) {
        int pageSize = Constant.PAGE_SIZE;
        JSONArray array = new JSONArray();
        Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).create();
        if (VersionUtil.greaterThan_1_5_70(acceptData.getPlatform(), acceptData.getVersion())) {
            List<TaoBaoGoodsBrief> goodsList = homeRecommendGoodsService.listGoodsByPage(null, acceptData.getDevice(),
@@ -1361,7 +1372,11 @@
            }
            if (page == 1) {
                List<TLJBuyGoods> list = homeRecommendGoodsService.getZiGouLiJianHotGoods(acceptData.getDevice());
                List<TLJBuyGoods> list = null;
                try {
                    list = homeRecommendGoodsService.getZiGouLiJianHotGoods(acceptData.getDevice());
                } catch (Exception e) {
                }
                if (list != null && list.size() > 0)
                    for (int i = list.size() - 1; i >= 0; i--) {
                        TLJBuyGoods goods = list.get(i);
@@ -2082,7 +2097,8 @@
        if (uid == null) {
            data.put("collected", false);
        } else {
            CollectionGoodsV2 collectionGoods = collectionGoodsV2Service.findByUidAndAuctionId(uid, id, Constant.SOURCE_TYPE_TAOBAO);
            CollectionGoodsV2 collectionGoods = collectionGoodsV2Service.findByUidAndAuctionId(uid, id,
                    Constant.SOURCE_TYPE_TAOBAO);
            data.put("collected", collectionGoods != null ? true : false);
        }
@@ -2444,82 +2460,83 @@
    @RequestMapping(value = "getgoodsderivation", method = RequestMethod.POST)
    public void getRecommendGoods(AcceptData acceptData, long id, PrintWriter out) {
        BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
                acceptData.getPackages());
        if (system == null) {
            out.print(JsonUtil.loadFalseResult(1, "系统不存在"));
            return;
        }
        List<TaoBaoGoodsBrief> goodsList = TaoKeApiUtil.getRelationGoodsRecommend(id, 10);
        // 初始化
        if (goodsList == null) {
            goodsList = new ArrayList<TaoBaoGoodsBrief>();
        }
        BigDecimal proportion = manageService.getFanLiRate();
        List<TaoBaoGoodsBriefExtra> listExtra = new ArrayList<TaoBaoGoodsBriefExtra>();
        TaoKeAppInfo app = new TaoKeAppInfo();
        app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
        app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
        app.setAdzoneId(TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT.split("_")[3]);
        app.setPid(TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT);
        List<Long> ids = new ArrayList<>();
        for (TaoBaoGoodsBrief goods : goodsList)
            ids.add(goods.getAuctionId());
        try {
            goodsList = TaoKeApiUtil.getBatchGoodsInfo(ids);
        } catch (TaoKeApiException e1) {
            e1.printStackTrace();
        } catch (TaobaoGoodsDownException e1) {
            e1.printStackTrace();
        }
        if (goodsList != null && goodsList.size() > 0)
            goodsList.parallelStream().forEach(goods -> {
                if (goods != null) {
                    // 获取详情
                    TaoBaoGoodsBrief taoBaoGoodsBrief = null;
                    try {
                        taoBaoGoodsBrief = taoBaoGoodsCacheUtil.getCommonTaoBaoGoodsInfo(goods.getAuctionId());
                    } catch (Exception e) {
                        e.printStackTrace();
            List<TaoBaoGoodsBrief> goodsList = TaoKeApiUtil.getRelationGoodsRecommend(id, 10);
            // 初始化
            if (goodsList == null) {
                goodsList = new ArrayList<TaoBaoGoodsBrief>();
            }
            BigDecimal proportion = manageService.getFanLiRate();
            List<TaoBaoGoodsBriefExtra> listExtra = new ArrayList<TaoBaoGoodsBriefExtra>();
            TaoKeAppInfo app = new TaoKeAppInfo();
            app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
            app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
            app.setAdzoneId(TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT.split("_")[3]);
            app.setPid(TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT);
            List<Long> ids = new ArrayList<>();
            for (TaoBaoGoodsBrief goods : goodsList)
                ids.add(goods.getAuctionId());
            try {
                goodsList = TaoKeApiUtil.getBatchGoodsInfo(ids);
            } catch (TaoKeApiException e1) {
                e1.printStackTrace();
            } catch (TaobaoGoodsDownException e1) {
                e1.printStackTrace();
            }
            if (goodsList != null && goodsList.size() > 0)
                goodsList.parallelStream().forEach(goods -> {
                    if (goods != null) {
                        // 获取详情
                        TaoBaoGoodsBrief taoBaoGoodsBrief = null;
                        try {
                            taoBaoGoodsBrief = taoBaoGoodsCacheUtil.getCommonTaoBaoGoodsInfo(goods.getAuctionId());
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                        if (taoBaoGoodsBrief == null) {
                            TaoBaoGoodsBrief newGoods = TaoKeApiUtil.specialConvertCoupon(goods.getAuctionId(), app);
                            goods.setCouponInfo(newGoods.getCouponInfo());
                            goods.setCouponLink(newGoods.getCouponLink());
                            goods.setTkRate(newGoods.getTkRate());
                            taoBaoGoodsBrief = goods;
                        }
                        if (taoBaoGoodsBrief != null) {
                            listExtra.add(
                                    TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), ""));
                        }
                    }
                });
                    if (taoBaoGoodsBrief == null) {
                        TaoBaoGoodsBrief newGoods = TaoKeApiUtil.specialConvertCoupon(goods.getAuctionId(), app);
                        goods.setCouponInfo(newGoods.getCouponInfo());
                        goods.setCouponLink(newGoods.getCouponLink());
                        goods.setTkRate(newGoods.getTkRate());
                        taoBaoGoodsBrief = goods;
                    }
            List<TaoBaoGoodsBrief> listQuality = new ArrayList<TaoBaoGoodsBrief>();
                    if (taoBaoGoodsBrief != null) {
                        listExtra.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), ""));
                    }
                }
            });
            // 取偶数个数据
            if (listExtra.size() % 2 != 0) {
                listExtra.remove(listExtra.size() - 1);
            }
        List<TaoBaoGoodsBrief> listQuality = new ArrayList<TaoBaoGoodsBrief>();
            if (listQuality.size() % 2 != 0) {
                listQuality.remove(listQuality.size() - 1);
            }
        // 取偶数个数据
        if (listExtra.size() % 2 != 0) {
            listExtra.remove(listExtra.size() - 1);
            JSONObject data = new JSONObject();
            data.put("listQuality", JsonUtil.getApiCommonGson().toJson(listExtra));
            data.put("listGuess", JsonUtil.getApiCommonGson().toJson(listQuality));
            out.print(JsonUtil.loadTrueResult(data));
        } catch (Exception e) {
            JSONObject data = new JSONObject();
            data.put("listQuality", new JSONArray());
            data.put("listGuess", new JSONArray());
            out.print(JsonUtil.loadTrueResult(data));
        }
        if (listQuality.size() % 2 != 0) {
            listQuality.remove(listQuality.size() - 1);
        }
        JSONObject data = new JSONObject();
        data.put("listQuality", JsonUtil.getApiCommonGson().toJson(listExtra));
        data.put("listGuess", JsonUtil.getApiCommonGson().toJson(listQuality));
        out.print(JsonUtil.loadTrueResult(data));
    }
    /**
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsControllerV2.java
@@ -7,6 +7,7 @@
import javax.annotation.Resource;
import org.json.simple.JSONArray;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@@ -747,7 +748,7 @@
            if (indexOf > 0) {
                salesTip = salesTip.substring(0, indexOf);
            }
            int totalSales = 0;
            if (salesTip.contains("万")) {
                salesTip = salesTip.substring(0, salesTip.indexOf("万"));
@@ -841,148 +842,158 @@
            goodsType = Constant.SOURCE_TYPE_TAOBAO;
        }
        // 京东
        if (goodsType == Constant.SOURCE_TYPE_JD) {
            JSONObject data = new JSONObject();
            data.put("listGuess", JsonUtil.getApiCommonGson().toJson(new ArrayList<GoodsDetailVO>()));
            List<JDGoods> list = JDUtil.getRecommendGoodsById(id);
            if (list == null) {
                list = new ArrayList<JDGoods>();
            } else if (list.size() > 10) {
                list = list.subList(0, 10);
            }
            BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
            BigDecimal shareRate = hongBaoManageService.getShareRate();
            List<GoodsDetailVO> listDetailVO = new ArrayList<GoodsDetailVO>();
            for (JDGoods goods : list) {
                listDetailVO.add(GoodsDetailVOFactory.convertJDGoods(goods, fanLiRate, shareRate));
            }
            // 取偶数个数据
            if (listDetailVO.size() % 2 != 0) {
                listDetailVO.remove(listDetailVO.size() - 1);
            }
            data.put("listQuality", JsonUtil.getApiCommonGson().toJson(listDetailVO));
            out.print(JsonUtil.loadTrueResult(data));
            return;
        }
        // 拼多多
        if (goodsType == Constant.SOURCE_TYPE_PDD) {
            JSONObject data = new JSONObject();
            data.put("listGuess", JsonUtil.getApiCommonGson().toJson(new ArrayList<GoodsDetailVO>()));
            List<GoodsDetailVO> listDetailVO = new ArrayList<GoodsDetailVO>();
            List<Long> goodsIdList = PinDuoDuoUtil.getRecommendGoodsId(id);
            if (goodsIdList != null && goodsIdList.size() > 0) {
                PDDSearchFilter pddfilter = new PDDSearchFilter();
                pddfilter.setPage(1);
                pddfilter.setPageSize(Constant.PAGE_SIZE);
                Long[] strings = new Long[goodsIdList.size()];
                pddfilter.setGoodsIdList(goodsIdList.toArray(strings));
                PDDGoodsResult result = PinDuoDuoApiUtil.searchGoods(pddfilter);
                if (result != null) {
                    List<PDDGoodsDetail> goodsList = result.getGoodsList();
                    if (goodsList != null && goodsList.size() > 0) {
                        if (goodsList.size() > 10) {
                            goodsList = goodsList.subList(0, 10);
                        }
                        BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
                        BigDecimal shareRate = hongBaoManageService.getShareRate();
                        for (PDDGoodsDetail goods : goodsList) {
                            listDetailVO.add(GoodsDetailVOFactory.convertPDDGoods(goods, fanLiRate, shareRate));
                        }
                    }
                }
            }
            // 取偶数个数据
            if (listDetailVO.size() % 2 != 0) {
                listDetailVO.remove(listDetailVO.size() - 1);
            }
            data.put("listQuality", JsonUtil.getApiCommonGson().toJson(listDetailVO));
            out.print(JsonUtil.loadTrueResult(data));
            return;
        }
        List<TaoBaoGoodsBrief> goodsList = TaoKeApiUtil.getRelationGoodsRecommend(id, 10);
        // 初始化
        if (goodsList == null) {
            goodsList = new ArrayList<TaoBaoGoodsBrief>();
        }
        List<GoodsDetailVO> listExtra = new ArrayList<GoodsDetailVO>();
        TaoKeAppInfo app = new TaoKeAppInfo();
        app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
        app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
        app.setAdzoneId(TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT.split("_")[3]);
        app.setPid(TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT);
        List<Long> ids = new ArrayList<>();
        for (TaoBaoGoodsBrief goods : goodsList)
            ids.add(goods.getAuctionId());
        try {
            goodsList = TaoKeApiUtil.getBatchGoodsInfo(ids);
        } catch (TaoKeApiException e1) {
            e1.printStackTrace();
        } catch (TaobaoGoodsDownException e1) {
            e1.printStackTrace();
        }
        if (goodsList != null && goodsList.size() > 0) {
            // 京东
            if (goodsType == Constant.SOURCE_TYPE_JD) {
                JSONObject data = new JSONObject();
                data.put("listGuess", JsonUtil.getApiCommonGson().toJson(new ArrayList<GoodsDetailVO>()));
            BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
            BigDecimal shareRate = hongBaoManageService.getShareRate();
                List<JDGoods> list = JDUtil.getRecommendGoodsById(id);
                if (list == null) {
                    list = new ArrayList<JDGoods>();
                } else if (list.size() > 10) {
                    list = list.subList(0, 10);
                }
            goodsList.parallelStream().forEach(goods -> {
                if (goods != null) {
                    // 获取详情
                    TaoBaoGoodsBrief taoBaoGoodsBrief = null;
                    try {
                        taoBaoGoodsBrief = taoBaoGoodsCacheUtil.getCommonTaoBaoGoodsInfo(goods.getAuctionId());
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
                BigDecimal shareRate = hongBaoManageService.getShareRate();
                List<GoodsDetailVO> listDetailVO = new ArrayList<GoodsDetailVO>();
                    if (taoBaoGoodsBrief == null) {
                        TaoBaoGoodsBrief newGoods = TaoKeApiUtil.specialConvertCoupon(goods.getAuctionId(), app);
                        goods.setCouponInfo(newGoods.getCouponInfo());
                        goods.setCouponLink(newGoods.getCouponLink());
                        goods.setTkRate(newGoods.getTkRate());
                        taoBaoGoodsBrief = goods;
                    }
                for (JDGoods goods : list) {
                    listDetailVO.add(GoodsDetailVOFactory.convertJDGoods(goods, fanLiRate, shareRate));
                }
                    if (taoBaoGoodsBrief != null) {
                        listExtra.add(GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, null, fanLiRate, shareRate));
                // 取偶数个数据
                if (listDetailVO.size() % 2 != 0) {
                    listDetailVO.remove(listDetailVO.size() - 1);
                }
                data.put("listQuality", JsonUtil.getApiCommonGson().toJson(listDetailVO));
                out.print(JsonUtil.loadTrueResult(data));
                return;
            }
            // 拼多多
            if (goodsType == Constant.SOURCE_TYPE_PDD) {
                JSONObject data = new JSONObject();
                data.put("listGuess", JsonUtil.getApiCommonGson().toJson(new ArrayList<GoodsDetailVO>()));
                List<GoodsDetailVO> listDetailVO = new ArrayList<GoodsDetailVO>();
                List<Long> goodsIdList = PinDuoDuoUtil.getRecommendGoodsId(id);
                if (goodsIdList != null && goodsIdList.size() > 0) {
                    PDDSearchFilter pddfilter = new PDDSearchFilter();
                    pddfilter.setPage(1);
                    pddfilter.setPageSize(Constant.PAGE_SIZE);
                    Long[] strings = new Long[goodsIdList.size()];
                    pddfilter.setGoodsIdList(goodsIdList.toArray(strings));
                    PDDGoodsResult result = PinDuoDuoApiUtil.searchGoods(pddfilter);
                    if (result != null) {
                        List<PDDGoodsDetail> goodsList = result.getGoodsList();
                        if (goodsList != null && goodsList.size() > 0) {
                            if (goodsList.size() > 10) {
                                goodsList = goodsList.subList(0, 10);
                            }
                            BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
                            BigDecimal shareRate = hongBaoManageService.getShareRate();
                            for (PDDGoodsDetail goods : goodsList) {
                                listDetailVO.add(GoodsDetailVOFactory.convertPDDGoods(goods, fanLiRate, shareRate));
                            }
                        }
                    }
                }
            });
        }
        List<GoodsDetailVO> listQuality = new ArrayList<GoodsDetailVO>();
        // 取偶数个数据
        if (listExtra.size() % 2 != 0) {
            listExtra.remove(listExtra.size() - 1);
        }
                // 取偶数个数据
                if (listDetailVO.size() % 2 != 0) {
                    listDetailVO.remove(listDetailVO.size() - 1);
                }
        if (listQuality.size() % 2 != 0) {
            listQuality.remove(listQuality.size() - 1);
        }
                data.put("listQuality", JsonUtil.getApiCommonGson().toJson(listDetailVO));
                out.print(JsonUtil.loadTrueResult(data));
                return;
            }
        JSONObject data = new JSONObject();
        data.put("listQuality", JsonUtil.getApiCommonGson().toJson(listExtra));
        data.put("listGuess", JsonUtil.getApiCommonGson().toJson(listQuality));
        out.print(JsonUtil.loadTrueResult(data));
            List<TaoBaoGoodsBrief> goodsList = TaoKeApiUtil.getRelationGoodsRecommend(id, 10);
            // 初始化
            if (goodsList == null) {
                goodsList = new ArrayList<TaoBaoGoodsBrief>();
            }
            List<GoodsDetailVO> listExtra = new ArrayList<GoodsDetailVO>();
            TaoKeAppInfo app = new TaoKeAppInfo();
            app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
            app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
            app.setAdzoneId(TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT.split("_")[3]);
            app.setPid(TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT);
            List<Long> ids = new ArrayList<>();
            for (TaoBaoGoodsBrief goods : goodsList)
                ids.add(goods.getAuctionId());
            try {
                goodsList = TaoKeApiUtil.getBatchGoodsInfo(ids);
            } catch (TaoKeApiException e1) {
                e1.printStackTrace();
            } catch (TaobaoGoodsDownException e1) {
                e1.printStackTrace();
            }
            if (goodsList != null && goodsList.size() > 0) {
                BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
                BigDecimal shareRate = hongBaoManageService.getShareRate();
                goodsList.parallelStream().forEach(goods -> {
                    if (goods != null) {
                        // 获取详情
                        TaoBaoGoodsBrief taoBaoGoodsBrief = null;
                        try {
                            taoBaoGoodsBrief = taoBaoGoodsCacheUtil.getCommonTaoBaoGoodsInfo(goods.getAuctionId());
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                        if (taoBaoGoodsBrief == null) {
                            TaoBaoGoodsBrief newGoods = TaoKeApiUtil.specialConvertCoupon(goods.getAuctionId(), app);
                            goods.setCouponInfo(newGoods.getCouponInfo());
                            goods.setCouponLink(newGoods.getCouponLink());
                            goods.setTkRate(newGoods.getTkRate());
                            taoBaoGoodsBrief = goods;
                        }
                        if (taoBaoGoodsBrief != null) {
                            listExtra.add(
                                    GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, null, fanLiRate, shareRate));
                        }
                    }
                });
            }
            List<GoodsDetailVO> listQuality = new ArrayList<GoodsDetailVO>();
            // 取偶数个数据
            if (listExtra.size() % 2 != 0) {
                listExtra.remove(listExtra.size() - 1);
            }
            if (listQuality.size() % 2 != 0) {
                listQuality.remove(listQuality.size() - 1);
            }
            JSONObject data = new JSONObject();
            data.put("listQuality", JsonUtil.getApiCommonGson().toJson(listExtra));
            data.put("listGuess", JsonUtil.getApiCommonGson().toJson(listQuality));
            out.print(JsonUtil.loadTrueResult(data));
        } catch (Exception e) {
            LogHelper.errorDetailInfo(e);
            JSONObject data = new JSONObject();
            data.put("listQuality", new JSONArray());
            data.put("listGuess", new JSONArray());
            out.print(JsonUtil.loadTrueResult(data));
        }
    }
    /**
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RecommendControllerV2.java
@@ -72,13 +72,13 @@
    @Resource
    private RedisManager redisManager;
    @Resource
    private HomeRecommendGoodsService homeRecommendGoodsService;
    @Resource
    private ConfigService configService;
    @Resource
    private MonitorService monitorService;
@@ -90,26 +90,25 @@
    @Resource
    private RecommendGoodsDeleteHistoryService recommendGoodsDeleteHistoryService;
    @Resource
    private JumpDetailV2Service jumpDetailV2Service;
    @Resource
    private DeviceSexService deviceSexService;
    @Resource
    private SpecialService specialService;
    @Resource
    private SwiperPictureService swiperPictureService;
    @Resource
    private JDGoodsService jdGoodsService;
    @Resource
    private PDDGoodsService pddGoodsService;
    /**
     * 新版推荐专题管理(1.5.3)
     * 
@@ -164,9 +163,7 @@
            }
        }
    }
    /**
     * 限时秒杀 1.5.3
     * 
@@ -178,8 +175,6 @@
        JSONObject root = getSpikeGoodsContent(acceptData);
        out.print(JsonUtil.loadTrueResult(root));
    }
    private JSONObject getSpikeGoodsContent(AcceptData acceptData) {
        // 下一次倒计时的时间
@@ -236,7 +231,7 @@
            BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
            BigDecimal shareRate = hongBaoManageService.getShareRate();
            Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
                    .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
@@ -253,11 +248,12 @@
                if (taoBaoGoodsBrief == null) {
                    continue;
                }
                GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, null, fanLiRate, shareRate);
                GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, null, fanLiRate,
                        shareRate);
                JSONObject params = new JSONObject();
                params.put("url", configService.get("spike_goods_link") + "?id=" + taoBaoGoodsBrief.getAuctionId());
                JSONObject goods = new JSONObject();
                goods.put("goods", gson.toJson(detailVO));
                goods.put("params", params);
@@ -289,41 +285,47 @@
        return root;
    }
    /**
     * 首页底部商品推荐
     *
     * @param acceptData
     * @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("参数信息不正常"));
            return;
        }
        if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
            taoBaoGuessUserLikeByDevice(acceptData, page, request, out);
            return;
        try {
            if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
                taoBaoGuessUserLikeByDevice(acceptData, page, request, out);
                return;
            }
            if (goodsType == Constant.SOURCE_TYPE_JD) {
                getIndexJDGoods(acceptData, page, out);
                return;
            }
            if (goodsType == Constant.SOURCE_TYPE_PDD) {
                getIndexPDDGoods(acceptData, page, out);
                return;
            }
            out.print(JsonUtil.loadFalseResult("商品类型错误"));
        } catch (Exception e) {
            LogHelper.errorDetailInfo(e);
            JSONObject data = new JSONObject();
            data.put("list", new JSONArray());
            data.put("count", 0);
            out.print(JsonUtil.loadTrueResult(data));
        }
        if (goodsType == Constant.SOURCE_TYPE_JD) {
            getIndexJDGoods(acceptData, page, out);
            return;
        }
        if (goodsType == Constant.SOURCE_TYPE_PDD) {
            getIndexPDDGoods(acceptData, page, out);
            return;
        }
        out.print(JsonUtil.loadFalseResult("商品类型错误"));
    }
    /**
     * 根据设备信息获取猜你喜欢的内容
     * 
@@ -333,11 +335,12 @@
     * @param idfa
     *            -IOS的idfa广告标识信息
     */
    public void taoBaoGuessUserLikeByDevice(AcceptData acceptData, int page, HttpServletRequest request, PrintWriter out) {
    public void taoBaoGuessUserLikeByDevice(AcceptData acceptData, int page, HttpServletRequest request,
            PrintWriter out) {
        int pageSize = Constant.PAGE_SIZE;
        JSONArray array = new JSONArray();
        Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).create();
        String idfa = acceptData.getIdfa();
        String imei = acceptData.getImei();
        if (VersionUtil.greaterThan_1_5_70(acceptData.getPlatform(), acceptData.getVersion())) {
@@ -364,20 +367,22 @@
                    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);
                        String hongBao = TaoBaoUtil.getGoodsHongBaoInfo(goods.getGoods(),TaoBaoConstant.OWN_BUY_WITHOUT_FANLI_RATE);
                        GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(goods.getGoods(), null, rateBuy,
                                rateBuy);
                        String hongBao = TaoBaoUtil.getGoodsHongBaoInfo(goods.getGoods(),
                                TaoBaoConstant.OWN_BUY_WITHOUT_FANLI_RATE);
                        ReduceHongBao reduceHongBao = new ReduceHongBao();
                        reduceHongBao.setLeft(goods.getLeftHongBaoCount());
                        reduceHongBao.setMoney(hongBao);
                        reduceHongBao.setName("付款立减 ");
                        reduceHongBao.setTip("");
                        reduceHongBao.setTotal(goods.getTotalHongBaoCount());
                        OtherInfo otherInfo = new OtherInfo();
                        otherInfo.setReduceHongBao(reduceHongBao);
                        detailVO.setOtherInfo(otherInfo);
                        detailVO.setPictureTag(new ClientTextStyleVO("立减TOP" + (i + 1), "#E5005C", "#FCE431", null));
                        detailVO.setRecommend(true);
@@ -417,20 +422,21 @@
                    if (gList != null) {
                        BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
                        BigDecimal shareRate = hongBaoManageService.getShareRate();
                        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, null, fanLiRate,
                                        shareRate);
                                detailVO.setRecommend(true);
                                goodsList.add(detailVO);
                            }
                        }
                    }
                    try {
                        monitorService.addClientAPIMonitor(MonitorFactory.createClientAPI(request, 0,
                                (int) (java.lang.System.currentTimeMillis() - startTime), "推荐数量:" + goodsList.size()));
@@ -467,12 +473,10 @@
        data.put("count", 1000);
        out.print(JsonUtil.loadTrueResult(data));
    }
    /**
     * 京东首页商品
     *
     * @param acceptData
     * @param page
     * @param out
@@ -506,9 +510,9 @@
        out.print(JsonUtil.loadTrueResult(data));
    }
    /**
     *   爆款排行商品-实时热销榜
     * 爆款排行商品-实时热销榜
     *
     * @param acceptData
     * @param page
     * @param out
@@ -537,5 +541,5 @@
        data.put("count", count);
        out.print(JsonUtil.loadTrueResult(data));
    }
}
fanli/src/main/java/com/yeshi/fanli/entity/taobao/TaoBaoGoodsBrief.java
@@ -12,6 +12,9 @@
import javax.persistence.Transient;
import org.hibernate.annotations.Type;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;
import com.google.gson.annotations.Expose;
@@ -23,6 +26,7 @@
 */
@Entity
@org.yeshi.utils.mybatis.Table("yeshi_ec_taobao_goods")
@Document(collection="taoBaoGoodsCache")
public class TaoBaoGoodsBrief implements Serializable {
    
    
@@ -37,12 +41,14 @@
    @Expose
    private Long id;
    @Field
    @org.yeshi.utils.mybatis.Column(name = "rootCatId")
    private Integer rootCatId;// 0,  一级类目ID
    @org.yeshi.utils.mybatis.Column(name = "eventCreatorId")
    private Integer eventCreatorId;// 0,
    @Field
    @org.yeshi.utils.mybatis.Column(name = "leafCatId")
    private Integer leafCatId;// 50011277, 子类目id
@@ -52,53 +58,68 @@
    @org.yeshi.utils.mybatis.Column(name = "rootCatScore")
    private Integer rootCatScore;// 0,
    @Field
    @org.yeshi.utils.mybatis.Column(name = "sellerId")
    private Long sellerId;// 卖家Id
    @Field
    @Expose
    @org.yeshi.utils.mybatis.Column(name = "userType")
    private Integer userType;// 0,
    @Field
    @Expose
    @org.yeshi.utils.mybatis.Column(name = "shopTitle")
    private String shopTitle;// 店铺名称
    @Field
    @org.yeshi.utils.mybatis.Column(name = "pictUrl")
    @Expose
    private String pictUrl;// 主图链接
    @Field
    @org.yeshi.utils.mybatis.Column(name = "pictUrlWhite")
    @Expose
    private String pictUrlWhite;// 白底色图片链接
    
    @Field
    @org.yeshi.utils.mybatis.Column(name = "title")
    @Expose
    private String title;// 商品标题
    @Field
    @Indexed
    @org.yeshi.utils.mybatis.Column(name = "auctionId")
    @Expose
    private Long auctionId;// 商品ID
    @Field
    @org.yeshi.utils.mybatis.Column(name = "couponLink")
    @Expose
    private String couponLink;// 优惠券链�?
    @Field
    @org.yeshi.utils.mybatis.Column(name = "couponLinkTaoToken")
    @Expose
    private String couponLinkTaoToken;//
    @Field
    @org.yeshi.utils.mybatis.Column(name = "couponActivityId")
    @Expose
    private String couponActivityId;//
    @Field
    @org.yeshi.utils.mybatis.Column(name = "biz30day")
    @Expose
    private Integer biz30day;// 月销量
    @Field
    @org.yeshi.utils.mybatis.Column(name = "tkRate")
    @Expose
    private BigDecimal tkRate;// 佣金比例 �?��100
    @Field
    @org.yeshi.utils.mybatis.Column(name = "nick")
    @Expose
    private String nick;// "yoyo_808611", 店铺名称
@@ -107,38 +128,47 @@
    @Expose
    private Integer includeDxjh;// 1:定向计划
    @Field
    @org.yeshi.utils.mybatis.Column(name = "reservePrice")
    @Expose
    private BigDecimal reservePrice;// 588,
    @Field
    @org.yeshi.utils.mybatis.Column(name = "tkCommFee")
    @Expose
    private BigDecimal tkCommFee;// 32.04,
    @Field
    @org.yeshi.utils.mybatis.Column(name = "totalFee")
    @Expose
    private BigDecimal totalFee;// 4814.43,
    @Field
    @org.yeshi.utils.mybatis.Column(name = "totalNum")
    @Expose
    private Integer totalNum;// 229, 库存数量
    @Field
    @org.yeshi.utils.mybatis.Column(name = "zkPrice")
    @Expose
    private BigDecimal zkPrice;// 无线价格,在售价
    @Field
    @org.yeshi.utils.mybatis.Column(name = "dayLeft")
    @Expose
    private Integer dayLeft;// -17228,
    @Field
    @org.yeshi.utils.mybatis.Column(name = "tk3rdRate")
    @Expose
    private String tk3rdRate;// null,
    @Field
    @org.yeshi.utils.mybatis.Column(name = "auctionUrl")
    @Expose
    private String auctionUrl;// 商品链接
    @Field
    @org.yeshi.utils.mybatis.Column(name = "rlRate")
    @Expose
    private Double rlRate;// 69.72,
@@ -155,38 +185,47 @@
    @Expose
    private Long sameItemPid;// "-232381821",
    @Field
    @org.yeshi.utils.mybatis.Column(name = "couponTotalCount")
    @Expose
    private Integer couponTotalCount;// 优惠券�?�?
    @Field
    @org.yeshi.utils.mybatis.Column(name = "couponLeftCount")
    @Expose
    private Integer couponLeftCount;// 优惠券剩余数�?
    @Field
    @org.yeshi.utils.mybatis.Column(name = "couponAmount")
    @Expose
    private BigDecimal couponAmount;// 优惠金额
    @Field
    @org.yeshi.utils.mybatis.Column(name = "eventRate")
    @Expose
    private String eventRate;// null,
    @Field
    @org.yeshi.utils.mybatis.Column(name = "couponShortLink")
    @Expose
    private String couponShortLink;// 优惠券短�?
    @Field
    @org.yeshi.utils.mybatis.Column(name = "couponInfo")
    @Expose
    private String couponInfo;// 优惠券信�?
    @Field
    @org.yeshi.utils.mybatis.Column(name = "couponStartFee")
    @Expose
    private BigDecimal couponStartFee;// 优惠券起始优�?
    @Field
    @org.yeshi.utils.mybatis.Column(name = "couponEffectiveStartTime")
    @Expose
    private String couponEffectiveStartTime;// "2017-02-04",优惠券开始时�?
    @Field
    @org.yeshi.utils.mybatis.Column(name = "couponEffectiveEndTime")
    @Expose
    private String couponEffectiveEndTime;// 优惠券结束时�?
@@ -203,22 +242,27 @@
    @Expose
    private String umpBonus;// null,
    @Field
    @org.yeshi.utils.mybatis.Column(name = "rootCategoryName")
    @Expose
    private String rootCategoryName;//  一级分类名称
    @Field
    @org.yeshi.utils.mybatis.Column(name = "couponOriLink")
    @Expose
    private String couponOriLink;// 优惠券原始链�?
    @Field
    @org.yeshi.utils.mybatis.Column(name = "userTypeName")
    @Expose
    private String userTypeName;// 用户类型
    @Field
    @org.yeshi.utils.mybatis.Column(name = "tkMktStatus")
    @Expose
    private String tkMktStatus; // 1:营销返利
    
    @Field
    @org.yeshi.utils.mybatis.Column(name = "totalSales")
    @Expose
    private Integer totalSales;// 229, 淘客30天月推广量
@@ -230,6 +274,7 @@
    private Date createtime;
    // 更新时间
    @Field
    @org.yeshi.utils.mybatis.Column(name = "updatetime")
    @Expose
    @Type(type = "date")
@@ -239,6 +284,7 @@
    @Expose
    private Integer state;// 0-正常 1-商品下架
    
    @Field
    @org.yeshi.utils.mybatis.Column(name = "material_lib_type")
    @Transient
    private Integer materialLibType;//物料库类型
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/recommend/HomeRecommendGoodsServiceImpl.java
@@ -209,7 +209,7 @@
            return list;
        // 爆款商品库
        TaoBaoSearchResult result = TaoKeApiUtil.getMaterialByMaterialId(16432, page, Constant.PAGE_SIZE);
        TaoBaoSearchResult result = TaoKeApiUtil.getMaterialByMaterialId(14624, page, Constant.PAGE_SIZE);
        if (result != null) {
            list = daTaoKeGoodsDetailService.filterTaoBaoGoods(result.getTaoBaoGoodsBriefs());
            saveObjList(list, name, key);
@@ -253,8 +253,15 @@
        Map<Long, TLJBuyGoods> map = new ConcurrentHashMap<>();
        if (list != null)
            for (TLJBuyGoods goods : list) {
                map.put(goods.getGoods().getAuctionId(), goods);
                finalList.add(goods.getGoods());
                try {
                    if (goods.getGoods().getAuctionId() == null) {
                        goods.getGoods().setAuctionId(goods.getGoods().getId());
                    }
                    map.put(goods.getGoods().getAuctionId(), goods);
                    finalList.add(goods.getGoods());
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        finalList = recommendGoodsDeleteHistoryService.filterGoods(device, finalList);
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TLJBuyGoodsServiceImpl.java
@@ -191,6 +191,8 @@
                TLJBuyGoods.getGoods().setCouponTotalCount(goods.getCouponTotalCount());
                TLJBuyGoods.getGoods().setBiz30day(goods.getBiz30day());
                TLJBuyGoods.getGoods().setTkRate(goods.getTkRate());
                TLJBuyGoods.getGoods().setId(goods.getId());
                TLJBuyGoods.getGoods().setAuctionId(goods.getAuctionId());
                tljBuyGoodsDao.save(TLJBuyGoods);
            }
    }
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoGoodsUpdateServiceImpl.java
@@ -12,6 +12,7 @@
import com.google.gson.Gson;
import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoGoodsBriefMapper;
import com.yeshi.fanli.dao.taobao.TaoBaoGoodsUpdateDao;
import com.yeshi.fanli.entity.goods.CommonGoods;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.exception.goods.CommonGoodsException;
@@ -24,8 +25,9 @@
import com.yeshi.fanli.service.inter.taobao.ShareHotGoodsService;
import com.yeshi.fanli.service.inter.taobao.TLJBuyGoodsService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService;
import com.yeshi.fanli.util.BeanUtil;
import com.yeshi.fanli.util.CMQManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.cache.TaoBaoGoodsCacheUtil;
import com.yeshi.fanli.util.factory.CommonGoodsFactory;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
@@ -49,6 +51,12 @@
    @Resource
    private TLJBuyGoodsService tljBuyGoodsService;
    @Resource
    private TaoBaoGoodsCacheUtil taoBaoGoodsCacheUtil;
    @Resource
    private TaoBaoGoodsUpdateDao taoBaoGoodsUpdateDao;
    @Override
    public void startUpdate() {
@@ -101,7 +109,6 @@
        // 分享爆款数据删除
        shareHotGoodsService.deleteByGoodsId(auctionId);
    }
    @Transactional
@@ -138,6 +145,9 @@
        // 更新自购立减库商品
        tljBuyGoodsService.updateGoods(goods);
        // 总要商品更新
//        updateImplTBGoods(goods);
    }
    @Override
@@ -265,4 +275,29 @@
            LogHelper.errorDetailInfo(e);
        }
    }
    /**
     * 更新重要的淘宝数据
     *
     * @param goods
     */
    public void updateImplTBGoods(TaoBaoGoodsBrief goods) {
        if (goods == null)
            return;
        if (!taoBaoGoodsCacheUtil.needUpdate(goods.getAuctionId())) {
            return;
        }
        goods.setUpdatetime(new Date());
        taoBaoGoodsUpdateDao.save(goods);
        taoBaoGoodsCacheUtil.addUpdateHistory(goods.getAuctionId());
    }
    @Override
    public void addUpdateQueue(Long auctionId) {
        if (taoBaoGoodsCacheUtil.canAddToUpdateQueue(auctionId)) {
            // 添加到更新队列
            CMQManager.getInstance().addTBImpGoodsUpdate(auctionId);
            taoBaoGoodsCacheUtil.addAddToQueueHistory(auctionId);
        }
    }
}
fanli/src/main/java/com/yeshi/fanli/service/inter/taobao/TaoBaoGoodsUpdateService.java
@@ -68,6 +68,7 @@
    /**
     * 队列更新商品
     *
     * @param start
     * @param count
     * @param hour
@@ -77,8 +78,22 @@
    /**
     * 根据taoke更新商品信息
     *
     * @param id
     */
    public void updateByTaoKeGoodsDetail(Long id);
    /**
     * 添加到更新队列
     *
     * @param auctionId
     */
    public void addUpdateQueue(Long auctionId);
    /**
     * 更新淘宝重要的商品
     * @param goods
     */
    public  void updateImplTBGoods(TaoBaoGoodsBrief goods);
}
fanli/src/main/java/com/yeshi/fanli/util/CMQManager.java
@@ -47,6 +47,8 @@
    public static String ORDER_WEIQUAN = "weiquan-order";
    public static String GOODS_UPDATE = "goods_update_queue";
    // 重要数据更新
    public static String IMPORTANT_GOODS_UPDATE = "imp_goods_update_queue";
    static {
@@ -59,6 +61,7 @@
            FANLI_ORDER_NEW = "test-" + FANLI_ORDER_NEW;
            FANLI_TICHENG_ORDER = "test-" + FANLI_TICHENG_ORDER;
            ORDER_WEIQUAN = "test-" + ORDER_WEIQUAN;
            IMPORTANT_GOODS_UPDATE = "test-" + IMPORTANT_GOODS_UPDATE;
        }
        QUEUENAME_ORDER += "-" + Constant.systemCommonConfig.getProjectName();
@@ -69,6 +72,7 @@
        FANLI_ORDER_NEW += "-" + Constant.systemCommonConfig.getProjectName();
        FANLI_TICHENG_ORDER += "-" + Constant.systemCommonConfig.getProjectName();
        ORDER_WEIQUAN += "-" + Constant.systemCommonConfig.getProjectName();
        IMPORTANT_GOODS_UPDATE += "-" + Constant.systemCommonConfig.getProjectName();
        cmqUtil = CMQUtil.getInstance(secretId, secretKey);
        // 最大消息为1M
@@ -81,6 +85,7 @@
        cmqUtil.createQueue(FANLI_TICHENG_ORDER);
        cmqUtil.createQueue(ORDER_WEIQUAN);
        cmqUtil.createQueue(GOODS_UPDATE);
        cmqUtil.createQueue(IMPORTANT_GOODS_UPDATE);
    }
    public static CMQManager getInstance() {
@@ -389,4 +394,44 @@
        cmqUtil.deleteMsg(GOODS_UPDATE, receiptHandle);
    }
    /**
     * 添加淘宝重要商品更新
     *
     * @param actionId
     */
    public void addTBImpGoodsUpdate(Long actionId) {
        cmqUtil.sendMsg(IMPORTANT_GOODS_UPDATE, actionId + "");
    }
    /**
     * 读取重要商品更新队列
     *
     * @param count
     * @return
     */
    public Map<String, Long> consumeTBImpGoodsUpdateMsg(int count) {
        List<Message> list = cmqUtil.recieveMsg(count, IMPORTANT_GOODS_UPDATE);
        if (list == null) {
            return null;
        }
        Map<String, Long> map = new HashMap<>();
        for (Message msg : list) {
            String result = msg.msgBody;
            if (!StringUtil.isNullOrEmpty(result)) {
                map.put(msg.receiptHandle, Long.parseLong(result));
            }
        }
        return map;
    }
    /**
     * 删除队列消息
     *
     * @param receiptHandle
     */
    public void deleteTBImpGoodsUpdateMsg(String receiptHandle) {
        cmqUtil.deleteMsg(IMPORTANT_GOODS_UPDATE, receiptHandle);
    }
}
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoKeApiUtil.java
@@ -39,8 +39,6 @@
//淘宝客API接口
public class TaoKeApiUtil {
    // 解析券的内容
    private static TaoBaoSearchResult parseCoupleContent(String content) {
        TaoBaoSearchResult result = new TaoBaoSearchResult();
@@ -339,22 +337,6 @@
                System.out.println(goods.getAuctionId() + ":" + g.getAuctionId());
                if (goods.getAuctionId().longValue() == g.getAuctionId()) {
                    g.setId(goods.getAuctionId());
                    // 判断是否有优惠券
                    if (!StringUtil.isNullOrEmpty(g.getCouponActivityId())) {
                        // 获取优惠券详情
                        QuanInfo quanInfo = getQuanInfo(g.getAuctionId(), g.getCouponActivityId());
                        if (quanInfo != null) {
                            g.setCouponAmount(quanInfo.coupon_amount);
                            g.setCouponEffectiveEndTime(quanInfo.coupon_end_time);
                            g.setCouponEffectiveStartTime(quanInfo.coupon_start_time);
                            g.setCouponLeftCount(quanInfo.coupon_remain_count);
                            g.setCouponStartFee(quanInfo.coupon_start_fee);
                            g.setCouponTotalCount(quanInfo.coupon_total_count);
                        }
                    } else {
                        g.setCouponAmount(new BigDecimal(0));
                        g.setCouponStartFee(new BigDecimal(0));
                    }
                    g.setCreatetime(new Date());
                    g.setMaterialLibType(goods.getMaterialLibType());
                    return g;
@@ -892,10 +874,9 @@
        if (!StringUtil.isNullOrEmpty(goods.getCouponInfo())) {
            List<BigDecimal> quanInfo = TaoBaoCouponUtil.getCouponInfo(goods.getCouponInfo());
            goods.setCouponAmount(quanInfo.get(1));
            goods.setCouponEffectiveEndTime(
                    TimeUtil.getGernalTime(System.currentTimeMillis() + 1000 * 60 * 60 * 24, "yyyy-MM-dd"));
            goods.setCouponEffectiveStartTime(TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyy-MM-dd"));
            goods.setCouponStartFee(quanInfo.get(0));
            goods.setCouponEffectiveEndTime(item.optString("coupon_end_time"));
            goods.setCouponEffectiveStartTime(item.optString("coupon_start_time"));
            goods.setCouponStartFee(new BigDecimal(item.optString("coupon_start_fee")));
            goods.setCouponLeftCount(item.optInt("coupon_remain_count"));
            goods.setCouponLink("https:" + item.optString("coupon_share_url"));
            goods.setCouponTotalCount(item.optInt("coupon_total_count"));