admin
2018-12-19 d97129d4fad83851cee8bf3cfe0b67063c61a305
商品下架CommonGoods处理
6个文件已修改
186 ■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/client/RecommendController.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/job/UpdateTaoBaoGoodsJob.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/activity/ActivityServiceImpl.java 127 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoGoodsUpdateServiceImpl.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/taobao/TaoBaoGoodsUpdateService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/RecommendController.java
@@ -161,8 +161,6 @@
    @Resource
    private SystemConfigService systemConfigService;
    @Resource
    private CollectionGoodsV2Service collectionGoodsV2Service;
@@ -306,7 +304,7 @@
    @RequestMapping(value = "getHonestList")
    public void getHonestList(AcceptData acceptData, PrintWriter out) {
        System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages());
        List<Honest> honestList =null;
        List<Honest> honestList = null;
        List<TaoBaoUnionConfig> configList = taoBaoUnionConfigService.getConfigByTypeCache(PidUser.TYPE_FANLI_ANDROID);
        if ((Integer.parseInt(acceptData.getVersion()) >= 20 && "android".equalsIgnoreCase(acceptData.getPlatform()))
                || ("ios".equalsIgnoreCase(acceptData.getPlatform())
@@ -704,8 +702,10 @@
            data.put("tbPidInfo", clientTBPid);
            JSONObject taobaoJson = JSONObject.fromObject(gson.toJson(taoBaoGoodsBriefExtra));
            taobaoJson.put("imgList", taoBaoGoodsBriefExtra.getImgList());
            // taoBaoGoodsBriefExtra.setAuctionUrl(null);
            data.put("taobao", gson.toJson(taoBaoGoodsBriefExtra));
            data.put("taobao", taobaoJson);
            String info = configService.get("detail_prompt");
            data.put("info", info);
            String onlyInfo = configService.get("only_info");
@@ -1355,16 +1355,18 @@
        /**
         * 防止请求频率过高
         *
         */
        String key = "linkParse-" + acceptData.getDevice() + "-" + id;
        if (Constant.IS_OUTNET) {
            String key = "linkParse-" + acceptData.getDevice() + "-" + id;
        String value = redisManager.getCommonString(key);
        if (!StringUtil.isNullOrEmpty(value)) {
            out.print(JsonUtil.loadFalseResult(11, "请求频率限制"));
            return;
            String value = redisManager.getCommonString(key);
            if (!StringUtil.isNullOrEmpty(value)) {
                out.print(JsonUtil.loadFalseResult(11, "请求频率限制"));
                return;
            }
            redisManager.cacheCommonString(key, "1", 5);// 5s间隔
        }
        redisManager.cacheCommonString(key, "1", 5);// 5s间隔
        TaoBaoGoodsBrief goods = null;
        try {
            goods = redisManager.getTaoBaoGoodsBrief(Long.parseLong(id));
@@ -1796,7 +1798,7 @@
                        // 商品下架
                        ThreadUtil.run(new Runnable() {
                            public void run() {
                                taoBaoGoodsUpdateService.deleteTaoBaoGoods(Long.parseLong(id));
                                taoBaoGoodsUpdateService.offlineTaoBaoGoods(Long.parseLong(id));
                            }
                        });
@@ -1823,7 +1825,11 @@
                    } catch (NumberFormatException e) {
                        e.printStackTrace();
                    } catch (TaobaoGoodsDownException e) {
                        e.printStackTrace();
                        ThreadUtil.run(new Runnable() {
                            public void run() {
                                taoBaoGoodsUpdateService.offlineTaoBaoGoods(Long.parseLong(id));
                            }
                        });
                    }
                }
fanli/src/main/java/com/yeshi/fanli/job/UpdateTaoBaoGoodsJob.java
@@ -80,7 +80,7 @@
                        .searchGoodsDetail(recommendSectionGoods.getTaoBaoGoodsBrief().getAuctionId());
                taoBaoGoodsUpdateService.updateTaoBaoGoods(goods);
            } catch (TaobaoGoodsDownException e1) {
                taoBaoGoodsUpdateService.downTaoBaoGoods(recommendSectionGoods.getTaoBaoGoodsBrief().getAuctionId());
                taoBaoGoodsUpdateService. offlineTaoBaoGoods(recommendSectionGoods.getTaoBaoGoodsBrief().getAuctionId());
            } catch (Exception e) {
                try {
                    LogHelper.errorDetailInfo(e);
fanli/src/main/java/com/yeshi/fanli/service/impl/activity/ActivityServiceImpl.java
@@ -98,10 +98,10 @@
    @Resource
    private TaoBaoGoodsUpdateService taoBaoGoodsUpdateService;
    @Resource
    private UserShareGoodsRecordService userShareGoodsRecordService;
    @Resource
    private CommonGoodsService commonGoodsService;
@@ -121,125 +121,125 @@
    }
    @Override
    public ActivityShareResult shareActivityGoods(Long uid, Long activityId) throws ActivityException,UserShareGoodsRecordException {
    public ActivityShareResult shareActivityGoods(Long uid, Long activityId)
            throws ActivityException, UserShareGoodsRecordException {
        RecommendActivity activity = recommendActivityMapper.selectByPrimaryKey(activityId);
        if (activity == null)
            throw new ActivityException(2, "动态不存在");
        if (activity.getType() != RecommendActivity.TYPE_SHARE_GOODS)
            throw new ActivityException(3, "不属于分享商品动态");
        ActivityShareResult result = new ActivityShareResult();
        String title = activity.getTitle().replace("<br>", "/n").replace("<p>", "").replace("</p>", "");
        if (title != null && title.trim().endsWith("/n"))
            title = title.trim().substring(0, title.trim().length() - 2);
        result.setTitle(title);
        List<FileUploadResult> imgList = new ArrayList<>();
        List<TaoBaoGoodsBrief> listGoodsBrief = new ArrayList<TaoBaoGoodsBrief>();
        if (activity.getGoodsList() != null) {
            activity.getGoodsList().stream().parallel().forEach(goodsActivity -> {
                try {
                    TaoBaoGoodsBrief goodsBrief =
                            redisManager.getTaoBaoGoodsBrief(Long.parseLong(goodsActivity.getAuctionId()));
                    TaoBaoGoodsBrief goodsBrief = redisManager
                            .getTaoBaoGoodsBrief(Long.parseLong(goodsActivity.getAuctionId()));
                    listGoodsBrief.add(goodsBrief);
                } catch (TaobaoGoodsDownException e) {
                    CommonGoods commonGoods= commonGoodsService.getCommonGoodsByGoodsIdAndGoodsType(Long.parseLong(goodsActivity.getAuctionId()),
                            CommonGoods.GOODS_TYPE_TB);
                    CommonGoods commonGoods = commonGoodsService.getCommonGoodsByGoodsIdAndGoodsType(
                            Long.parseLong(goodsActivity.getAuctionId()), CommonGoods.GOODS_TYPE_TB);
                    if (commonGoods != null) {
                        TaoBaoGoodsBrief goodsBrief =  TaoBaoUtil.convert(commonGoods);
                        TaoBaoGoodsBrief goodsBrief = TaoBaoUtil.convert(commonGoods);
                        goodsBrief.setState(1);
                        listGoodsBrief.add(goodsBrief);
                    }
                    try {
                        LogHelper.errorDetailInfo(e, "分享商品出错-商品ID:" + goodsActivity.getAuctionId(),    "--");
                        LogHelper.errorDetailInfo(e, "分享商品出错-商品ID:" + goodsActivity.getAuctionId(), "--");
                    } catch (Exception e1) {
                        e1.printStackTrace();
                    }
                }
            });
        }
        if (listGoodsBrief.size() < 1) {
            throw new ActivityException(1, "商品下架");
        }
        Map<String,Object> map =  userShareGoodsRecordService.save(uid, ShareSourceTypeEnum.activity, title, listGoodsBrief);
        Map<String, Object> map = userShareGoodsRecordService.save(uid, ShareSourceTypeEnum.activity, title,
                listGoodsBrief);
        imgList.add((FileUploadResult) map.get("loadResult"));
        result.setImgList(imgList);
        return result;
    }
    @Override
    public JSONObject shareGoodsV2(Long uid, Long activityId) throws ActivityException,UserShareGoodsRecordException {
    public JSONObject shareGoodsV2(Long uid, Long activityId) throws ActivityException, UserShareGoodsRecordException {
        RecommendActivity activity = recommendActivityMapper.selectByPrimaryKey(activityId);
        if (activity == null)
            throw new ActivityException(2, "动态不存在");
        if (activity.getType() != RecommendActivity.TYPE_SHARE_GOODS)
            throw new ActivityException(3, "不属于分享商品动态");
        ActivityShareResult result = new ActivityShareResult();
        String title = activity.getTitle().replace("<br>", "/n").replace("<p>", "").replace("</p>", "");
        if (title != null && title.trim().endsWith("/n"))
            title = title.trim().substring(0, title.trim().length() - 2);
        result.setTitle(title);
        List<TaoBaoGoodsBrief> listGoodsBrief = new ArrayList<TaoBaoGoodsBrief>();
        if (activity.getGoodsList() != null) {
            activity.getGoodsList().stream().parallel().forEach(goodsActivity -> {
                try {
                    TaoBaoGoodsBrief goodsBrief =
                            redisManager.getTaoBaoGoodsBrief(Long.parseLong(goodsActivity.getAuctionId()));
                    TaoBaoGoodsBrief goodsBrief = redisManager
                            .getTaoBaoGoodsBrief(Long.parseLong(goodsActivity.getAuctionId()));
                    listGoodsBrief.add(goodsBrief);
                } catch (TaobaoGoodsDownException e) {
                    CommonGoods commonGoods= commonGoodsService.getCommonGoodsByGoodsIdAndGoodsType(Long.parseLong(goodsActivity.getAuctionId()),
                            CommonGoods.GOODS_TYPE_TB);
                    CommonGoods commonGoods = commonGoodsService.getCommonGoodsByGoodsIdAndGoodsType(
                            Long.parseLong(goodsActivity.getAuctionId()), CommonGoods.GOODS_TYPE_TB);
                    if (commonGoods != null) {
                        TaoBaoGoodsBrief goodsBrief =  TaoBaoUtil.convert(commonGoods);
                        TaoBaoGoodsBrief goodsBrief = TaoBaoUtil.convert(commonGoods);
                        goodsBrief.setState(1);
                        listGoodsBrief.add(goodsBrief);
                    }
                    try {
                        LogHelper.errorDetailInfo(e, "分享商品出错-商品ID:" + goodsActivity.getAuctionId(),    "--");
                        LogHelper.errorDetailInfo(e, "分享商品出错-商品ID:" + goodsActivity.getAuctionId(), "--");
                    } catch (Exception e1) {
                        e1.printStackTrace();
                    }
                }
            });
        }
        if (listGoodsBrief.size() < 1) {
            throw new ActivityException(1, "商品下架");
        }
        String fontColor1 = "#000000";
        String fontColor2 = "#E5005C";
        JSONArray array = new JSONArray();
        JSONObject contentJson1 = new JSONObject();
        contentJson1.put("color", fontColor1);
        contentJson1.put("content", "预估分享奖金:");
        String revenue = "¥0";
        String totalGetMoney = activity.getTotalGetMoney();
        if (totalGetMoney != null && totalGetMoney.trim().length() > 0) {
@@ -248,18 +248,19 @@
                revenue = split[1];
            }
        }
        JSONObject contentJson2 = new JSONObject();
        contentJson2.put("color", fontColor2);
        contentJson2.put("content", revenue);
        array.add(contentJson1);
        array.add(contentJson2);
        JSONObject data = new JSONObject();
        Map<String,Object> map = userShareGoodsRecordService.save(uid, ShareSourceTypeEnum.activity, title, listGoodsBrief);
        Map<String, Object> map = userShareGoodsRecordService.save(uid, ShareSourceTypeEnum.activity, title,
                listGoodsBrief);
        data.put("title", title);
        data.put("revenue", array);
        data.put("shareId", map.get("shareId"));
@@ -267,7 +268,7 @@
        data.put("notifyDesc", configService.get("goods_share_multiple_notify"));
        return data;
    }
    @Override
@@ -316,9 +317,9 @@
        activity.setTop(top);
        activity.setType(RecommendActivity.TYPE_SHARE_GOODS);
        recommendActivityMapper.insertSelective(activity);
        List<CommonGoods> listCommonGoods = new ArrayList<CommonGoods>();
        BigDecimal taotaoMoney = new BigDecimal(0);
        for (long auctionId : goodsList) {
            TaoBaoGoodsBrief tb = null;
@@ -341,12 +342,12 @@
            recommendActivityTaoBaoGoodsMapper.insertSelective(goods);
            BigDecimal money = taoBaoGoodsBriefService.getShareGoodsUserHongBao(tb);
            taotaoMoney = taotaoMoney.add(money);
            // 转换简版商品信息
            CommonGoods commonGoods = CommonGoodsFactory.create(tb);
            listCommonGoods.add(commonGoods);
        }
        try {
            // 更新简版信息
            commonGoodsService.addBatchCommonGoods(listCommonGoods);
@@ -356,7 +357,7 @@
        RecommendActivity updateActivity = new RecommendActivity();
        updateActivity.setId(activity.getId());
        updateActivity.setTotalGetMoney("预计分享奖金:¥" + taotaoMoney.toString());
        updateActivity.setTotalGetMoney("预估分享奖金:¥" + taotaoMoney.toString());
        recommendActivityMapper.updateByPrimaryKeySelective(updateActivity);
        return activity;
@@ -490,7 +491,7 @@
        RecommendActivity updateActivity = new RecommendActivity();
        updateActivity.setId(activity.getId());
        updateActivity.setTotalGetMoney("预计分享奖金:¥" + taotaoMoney.toString());
        updateActivity.setTotalGetMoney("预估分享奖金:¥" + taotaoMoney.toString());
        recommendActivityMapper.updateByPrimaryKeySelective(updateActivity);
        return activity;
@@ -629,7 +630,7 @@
                    update.setId(goods.getId());
                    update.setState(RecommendActivityTaoBaoGoods.STATE_UNSHELVE);
                    recommendActivityTaoBaoGoodsMapper.updateByPrimaryKeySelective(update);
                    taoBaoGoodsUpdateService.downTaoBaoGoods(Long.parseLong(goods.getAuctionId()));
                    taoBaoGoodsUpdateService.offlineTaoBaoGoods(Long.parseLong(goods.getAuctionId()));
                }
            }
    }
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.entity.goods.CommonGoods;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.exception.goods.CommonGoodsException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
@@ -60,7 +61,7 @@
                }
            } catch (TaobaoGoodsDownException e) {
                downTaoBaoGoods(goods.getAuctionId());
                 offlineTaoBaoGoods(goods.getAuctionId());
            } catch (Exception e) {
            }
@@ -82,7 +83,7 @@
    @Transactional
    @Override
    public void downTaoBaoGoods(Long auctionId) {
    public void  offlineTaoBaoGoods(Long auctionId) {
        // 删除首页推荐数据
        recommendSectionGoodsService.deleteRecommendSectionGoodsByTbAuctionId(auctionId);
        // 更新动态数据
@@ -93,6 +94,9 @@
        // 删除商品本身数据
        taoBaoGoodsBriefMapper.deleteByAuctionId(auctionId);
        // 更新简版商品状态为下架
        commonGoodsService.offlineCommonGoods(auctionId, CommonGoods.GOODS_TYPE_TB);
    }
    @Transactional
@@ -192,20 +196,19 @@
            throw new TaobaoGoodsUpdateException(1, "商品列表为空");
        List<TaoBaoGoodsBrief> updateList = new ArrayList<>();
        for (TaoBaoGoodsBrief goods : goodsList) {
            if (goods.getId() == null || goods.getId() == 0L) {
                throw new TaobaoGoodsUpdateException(1, "商品主键ID为空");
            }
            TaoBaoGoodsBrief updateGoods = getUpdateTaoBaoGoodsBrief(goods);
            updateGoods.setCreatetime(goods.getCreatetime());
            updateList.add(updateGoods);
        }
        taoBaoGoodsBriefMapper.updateBatchSelective(updateList);
    }
fanli/src/main/java/com/yeshi/fanli/service/inter/taobao/TaoBaoGoodsUpdateService.java
@@ -56,7 +56,7 @@
     * 
     * @param auctionId
     */
    public void downTaoBaoGoods(Long auctionId);
    public void offlineTaoBaoGoods(Long auctionId);
    /**
     * 淘宝商品更新信息
fanli/src/main/java/com/yeshi/fanli/util/taobao/TaoBaoUtil.java
@@ -928,12 +928,14 @@
        tg.setId(tb.getId());
        tg.setAuctionId(tb.getAuctionId());
        tg.setBiz30day(tb.getBiz30day());
        tg.setSalesCount(TaoBaoUtil.getSaleCount(tb.getBiz30day()));
        tg.setTitle(tb.getTitle());
        tg.setPictUrl(tb.getPictUrl() + "_200x200");
        tg.setPictUrl(tb.getPictUrl());
        tg.setZkPrice(tb.getZkPrice());
        tg.setAuctionUrl(tb.getAuctionUrl());
        tg.setReservePrice(tb.getReservePrice());
        tg.setUserType(tb.getUserType());
        tg.setImgList(tb.getImgList());
        if (tb.getCouponAmount().compareTo(BigDecimal.valueOf(0)) == 1) {
            TaoBaoQuanInfo quanInfo = new TaoBaoQuanInfo();