admin
2020-04-29 9b4cdc2ab8f46336dffea4c4145b4fd35d4c2dad
兼容大淘客店铺券
15个文件已修改
1个文件已添加
469 ■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/GoodsController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/RecommendController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsControllerV2.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/web/ShareHotGoodsController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/web/TLJBuyGoodsController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dto/taobao/DaTaoKeFilterResult.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/job/TaoLiJinJob.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/job/UpdateDaTaoKeJob.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/ShareGoodsServiceImpl.java 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/dataoke/DaTaoKeGoodsDetailV2ServiceImpl.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/taobao/dataoke/DaTaoKeGoodsDetailV2Service.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/RedisKeyEnum.java 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/cache/TaoBaoGoodsCacheUtil.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/dataoke/DaTaoKeApiUtil.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/taobao/DaTaoKeUtil.java 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/resource/rocket/consumer.xml 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/GoodsController.java
@@ -250,6 +250,8 @@
                    if (taoBaoLink == null) {
                        taoBaoLink = shareGoodsService.getTaoBaoLinkForBuyWithSpecial(uid, specialId, auctionId);
                        if(taoBaoLink!=null)
                            clientTBPid=null;
                    }
                    data.put("native", true);
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/RecommendController.java
@@ -2074,7 +2074,7 @@
        // 大淘客商品过滤
        try {
            goods = daTaoKeGoodsDetailV2Service.filterTaoBaoGoods(goods);
            goods = daTaoKeGoodsDetailV2Service.filterTaoBaoGoods(goods).getGoods();
        } catch (Exception e) {
            LogHelper.errorDetailInfo(e);
        }
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsControllerV2.java
@@ -1,7 +1,6 @@
package com.yeshi.fanli.controller.client.v2;
import java.io.PrintWriter;
import java.lang.reflect.InvocationTargetException;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
@@ -10,7 +9,6 @@
import javax.annotation.Resource;
import org.apache.commons.beanutils.PropertyUtils;
import org.json.simple.JSONArray;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -27,6 +25,7 @@
import com.yeshi.fanli.dto.pdd.PDDGoodsResult;
import com.yeshi.fanli.dto.pdd.PDDPromotionUrl;
import com.yeshi.fanli.dto.pdd.PDDSearchFilter;
import com.yeshi.fanli.dto.taobao.DaTaoKeFilterResult;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.user.ShamUser;
import com.yeshi.fanli.entity.bus.user.UserInfo;
@@ -89,6 +88,7 @@
import com.yeshi.fanli.util.cache.JDGoodsCacheUtil;
import com.yeshi.fanli.util.cache.PinDuoDuoCacheUtil;
import com.yeshi.fanli.util.cache.TaoBaoGoodsCacheUtil;
import com.yeshi.fanli.util.dataoke.DaTaoKeApiUtil;
import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
import com.yeshi.fanli.util.factory.goods.ShopInfoVOFactory;
import com.yeshi.fanli.util.jd.JDApiUtil;
@@ -211,7 +211,7 @@
    @Resource
    private UserLevelManager userLevelManager;
    @Resource
    private HongBaoManageService hongBaoManageService;
@@ -227,6 +227,38 @@
        if (level == null)
            level = UserLevelEnum.daRen;
        return orderHongBaoMoneyComputeService.getShowComputeRate(platform, version, level);
    }
    private TaoBaoGoodsBrief filterDaTaoKeGoodsInfo(TaoBaoGoodsBrief goods) {
        try {
            DaTaoKeFilterResult result = daTaoKeGoodsDetailV2Service.filterTaoBaoGoods(goods);
            if (result.getFilterType() == DaTaoKeFilterResult.FILTER_TYPE_COUPON
                    || result.getFilterType() == DaTaoKeFilterResult.FILTER_TYPE_PRICE_AND_COUPON) {
                // 缓存基础链接
                String dpid = null;
                if (TaoBaoUtil.isSpecialGoods(goods.getMaterialLibType())) {
                    dpid = TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT;
                } else {
                    dpid = TaoBaoConstant.TAOBAO_RELATION_AS_SPECIAL_PID;
                }
                String link = taoBaoGoodsCacheUtil.getBaseConvertLink(goods.getAuctionId(), dpid);
                if (!StringUtil.isNullOrEmpty(link)) {
//                    result.getGoods().setCouponLink(link);
                    return result.getGoods();
                } else {
                    link = DaTaoKeApiUtil.convertLink(goods.getAuctionId(), dpid);
                    if (!StringUtil.isNullOrEmpty(link)) {
//                        result.getGoods().setCouponLink(link);
                        taoBaoGoodsCacheUtil.cacheBaseConvertLink(goods.getAuctionId(), dpid, link);
                    }
                    return result.getGoods();
                }
            }
        } catch (Exception e) {
            LogHelper.errorDetailInfo(e);
        }
        return goods;
    }
    /**
@@ -399,11 +431,7 @@
        // 大淘客商品过滤
        try {
            goods = daTaoKeGoodsDetailV2Service.filterTaoBaoGoods(goods, acceptData.getPlatform(),
                    acceptData.getVersion());
            // goods = daTaoKeGoodsDetailV2Service.filterTaoBaoGoods(goods);
            goods = filterDaTaoKeGoodsInfo(goods);
        } catch (Exception e) {
            LogHelper.errorDetailInfo(e);
        }
@@ -495,11 +523,8 @@
        String h5Url = String.format("http://%s%s?uid=%s&id=%s&appType=flq", configService.getH5Host(),
                Constant.systemCommonConfig.getShareGoodsPagePath(), "", id + "");
        try {
            extraVO.setH5Url(HttpUtil.getShortLink(h5Url));
        } catch (Exception e) {
            extraVO.setH5Url(h5Url);
        }
        extraVO.setH5Url(h5Url);
        String helpLink = null;
        boolean fanliValid = true;
@@ -619,22 +644,6 @@
            // 设置couponList
            List<CouponInfoVO> couponInfoList = new ArrayList<>();
            couponInfoList.add(goodsDetail.getCouponInfo());
            if (Constant.IS_TEST) {
                CouponInfoVO coupon = new CouponInfoVO();
                try {
                    PropertyUtils.copyProperties(coupon, goodsDetail.getCouponInfo());
                } catch (IllegalAccessException e) {
                    e.printStackTrace();
                } catch (InvocationTargetException e) {
                    e.printStackTrace();
                } catch (NoSuchMethodException e) {
                    e.printStackTrace();
                }
                coupon.setShopCoupon(true);
                coupon.setLink(
                        "https://uland.taobao.com/quan/detail?sellerId=725677994&activityId=d03aa6d23a5a4040afb3942e7ea9a007");
                couponInfoList.add(coupon);
            }
            goodsDetail.setCouponInfoList(couponInfoList);
        }
        JSONObject object = new JSONObject();
fanli/src/main/java/com/yeshi/fanli/controller/web/ShareHotGoodsController.java
@@ -96,7 +96,7 @@
                if (TaoBaoUtil.canAddToTLJBuyGoods(goods)) {
                    count++;
                    goods = daTaoKeGoodsDetailV2Service.filterTaoBaoGoods(goods);
                    goods = daTaoKeGoodsDetailV2Service.filterTaoBaoGoods(goods).getGoods();
                    shareHotGoodsService.addShareHotGoods(new ShareHotGoods(null, day, new Date(), goods));
                }
            }
fanli/src/main/java/com/yeshi/fanli/controller/web/TLJBuyGoodsController.java
@@ -96,7 +96,7 @@
                if (TaoBaoUtil.getAfterUseCouplePrice(goods).multiply(goods.getTkRate())
                        .compareTo(new BigDecimal("143")) >= 0) {
                    count++;
                    goods = daTaoKeGoodsDetailV2Service.filterTaoBaoGoods(goods);
                    goods = daTaoKeGoodsDetailV2Service.filterTaoBaoGoods(goods).getGoods();
                    int totalHongBaoCount = 2000 + (int) (Math.random() * 8000);
                    int leftHongBaoCount = 200 + (int) (Math.random() * 2000);
                    tljBuyGoodsService.addTLJBuyGoods(
fanli/src/main/java/com/yeshi/fanli/dto/taobao/DaTaoKeFilterResult.java
New file
@@ -0,0 +1,43 @@
package com.yeshi.fanli.dto.taobao;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
/**
 * 大淘客过滤结果
 * @author Administrator
 *
 */
public class DaTaoKeFilterResult {
    public final static int FILTER_TYPE_NONE = 0;// 没有过滤
    public final static int FILTER_TYPE_PRICE = 1;// 过滤了价格
    public final static int FILTER_TYPE_COUPON = 2;// 过滤了券
    public final static int FILTER_TYPE_PRICE_AND_COUPON = 12;// 过滤了券和价格
    private TaoBaoGoodsBrief goods;
    private int filterType;
    public DaTaoKeFilterResult(TaoBaoGoodsBrief goods, int filterType) {
        super();
        this.goods = goods;
        this.filterType = filterType;
    }
    public TaoBaoGoodsBrief getGoods() {
        return goods;
    }
    public void setGoods(TaoBaoGoodsBrief goods) {
        this.goods = goods;
    }
    public int getFilterType() {
        return filterType;
    }
    public void setFilterType(int filterType) {
        this.filterType = filterType;
    }
}
fanli/src/main/java/com/yeshi/fanli/job/TaoLiJinJob.java
@@ -102,7 +102,7 @@
                        && TaoBaoUtil.getAfterUseCouplePrice(goods).multiply(goods.getTkRate())
                                .compareTo(new BigDecimal("1430")) <= 0
                        && goods.getUserType() == 1) {
                    goods = daTaoKeGoodsDetailV2Service.filterTaoBaoGoods(goods);
                    goods = daTaoKeGoodsDetailV2Service.filterTaoBaoGoods(goods).getGoods();
                    int totalHongBaoCount = 2000 + (int) (Math.random() * 8000);
                    int leftHongBaoCount = 200 + (int) (Math.random() * 2000);
                    tljBuyGoodsService.addTLJBuyGoods(
fanli/src/main/java/com/yeshi/fanli/job/UpdateDaTaoKeJob.java
@@ -142,7 +142,7 @@
                    && goods.getCouponAmount().compareTo(new BigDecimal(0)) > 0) {
                if (TaoBaoUtil.canAddToTLJBuyGoods(goods)) {
                    count++;
                    goods = daTaoKeGoodsDetailV2Service.filterTaoBaoGoods(goods);
                    goods = daTaoKeGoodsDetailV2Service.filterTaoBaoGoods(goods).getGoods();
                    shareHotGoodsService.addShareHotGoods(new ShareHotGoods(null, day, new Date(), goods));
                }
            }
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/ShareGoodsServiceImpl.java
@@ -21,6 +21,7 @@
import com.yeshi.fanli.dao.mybatis.UserInfoMapper;
import com.yeshi.fanli.dao.mybatis.UserShareGoodsHistoryMapper;
import com.yeshi.fanli.dto.taobao.DaTaoKeFilterResult;
import com.yeshi.fanli.dto.taobao.TaoLiJinDTO;
import com.yeshi.fanli.entity.bus.share.UserShareGoodsHistory;
import com.yeshi.fanli.entity.bus.user.UserInfo;
@@ -31,6 +32,7 @@
import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
import com.yeshi.fanli.entity.taobao.TaoKeAppInfo;
import com.yeshi.fanli.entity.taobao.UserTLJBuyHistory;
import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetailV2;
import com.yeshi.fanli.exception.share.ShareGoodsException;
import com.yeshi.fanli.exception.taobao.TaoKeApiException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
@@ -47,6 +49,7 @@
import com.yeshi.fanli.service.inter.taobao.TLJBuyGoodsService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
import com.yeshi.fanli.service.inter.taobao.UserTLJBuyHistoryService;
import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailV2Service;
import com.yeshi.fanli.service.inter.user.TBPidService;
import com.yeshi.fanli.service.inter.user.UserAccountService;
import com.yeshi.fanli.service.manger.goods.ConvertLinkManager;
@@ -59,20 +62,20 @@
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TaoBaoConstant;
import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.util.cache.TaoBaoGoodsCacheUtil;
import com.yeshi.fanli.util.dataoke.DaTaoKeApiUtil;
import com.yeshi.fanli.util.taobao.DaTaoKeUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
@Service
public class ShareGoodsServiceImpl implements ShareGoodsService {
    @Resource
    private TBPidService tbPidService;
    @Resource
    private UserShareGoodsHistoryMapper userShareGoodsHistoryMapper;
    @Resource
    private UserInfoMapper userinfoMapper;
@@ -92,7 +95,6 @@
    @Resource
    private HongBaoManageService hongBaoManageService;
    @Resource
    private UserTLJBuyHistoryService userTLJBuyHistoryService;
@@ -104,9 +106,15 @@
    @Resource
    private UserTaoLiJinNewbiesService userTaoLiJinNewbiesService;
    @Resource
    private ConvertLinkManager convertLinkManager;
    @Resource
    private TaoBaoGoodsCacheUtil taoBaoGoodsCacheUtil;
    @Resource
    private DaTaoKeGoodsDetailV2Service daTaoKeGoodsDetailV2Service;
    @Override
    public void addShareGoodsHistory(UserShareGoodsHistory history) {
@@ -418,12 +426,36 @@
        }
        if (StringUtil.isNullOrEmpty(goods.getCouponLink()) && !goods.getAuctionUrl().contains("s.click.taobao.com")) {
            TaoBaoGoodsBrief taoBaoLink = TaoKeApiUtil.specialConvertCoupon(auctionId, info);
            if (taoBaoLink == null) {
                throw new ShareGoodsException(201, "商品转链失败");
            }
            goods.setCouponLink(taoBaoLink.getCouponLink());
            goods.setAuctionUrl(taoBaoLink.getAuctionUrl());
        }
        String link = taoBaoGoodsCacheUtil.getBaseConvertLink(auctionId, info.getPid());
        if (link != null) {
            goods.setCouponLink(link);
        } else {// 缓存
            DaTaoKeFilterResult result = daTaoKeGoodsDetailV2Service.filterTaoBaoGoods(goods);
            if (result.getFilterType() == DaTaoKeFilterResult.FILTER_TYPE_COUPON
                    || result.getFilterType() == DaTaoKeFilterResult.FILTER_TYPE_PRICE_AND_COUPON) {
                link = DaTaoKeApiUtil.convertLink(auctionId, info.getPid());
                if (!StringUtil.isNullOrEmpty(link)) {
                    goods.setCouponLink(link);
                    taoBaoGoodsCacheUtil.cacheBaseConvertLink(auctionId, info.getPid(), link);
                }
            }
            if (StringUtil.isNullOrEmpty(link)) {
                TaoBaoGoodsBrief taoBaoLink = TaoKeApiUtil.specialConvertCoupon(auctionId, info);
                if (taoBaoLink == null) {
                    throw new ShareGoodsException(201, "商品转链失败");
                }
                goods.setCouponLink(taoBaoLink.getCouponLink());
                goods.setAuctionUrl(taoBaoLink.getAuctionUrl());
            }
        }
        if (!StringUtil.isNullOrEmpty(relationId)) {
@@ -442,12 +474,14 @@
        tbLink.setCouponLink(goods.getCouponLink());
        if (!StringUtil.isNullOrEmpty(tbLink.getCouponLink())) {// 通过立即推广方式获取淘口令成功
            String quanToken = convertLinkManager.createTaoBaoToken(uid, goods.getPictUrl(), goods.getTitle(), tbLink.getCouponLink());
            String quanToken = convertLinkManager.createTaoBaoToken(uid, goods.getPictUrl(), goods.getTitle(),
                    tbLink.getCouponLink());
            if (!StringUtil.isNullOrEmpty(quanToken)) {
                tbLink.setTaoToken(quanToken);
            }
        } else if (!StringUtil.isNullOrEmpty(tbLink.getClickUrl())) {
            String quanToken = convertLinkManager.createTaoBaoToken(uid,goods.getPictUrl(), goods.getTitle(), tbLink.getClickUrl());
            String quanToken = convertLinkManager.createTaoBaoToken(uid, goods.getPictUrl(), goods.getTitle(),
                    tbLink.getClickUrl());
            if (!StringUtil.isNullOrEmpty(quanToken)) {
                tbLink.setTaoToken(quanToken);
            }
@@ -470,13 +504,15 @@
    public String createTaoBaoToken(Long uid, TaoBaoGoodsBrief goods) {
        String quanToken = "";
        if (!StringUtil.isNullOrEmpty(goods.getCouponLink())) {// 通过立即推广方式获取淘口令成功
            quanToken = convertLinkManager.createTaoBaoToken(uid, goods.getPictUrl(), goods.getTitle(), goods.getCouponLink());
            quanToken = convertLinkManager.createTaoBaoToken(uid, goods.getPictUrl(), goods.getTitle(),
                    goods.getCouponLink());
        } else if (!StringUtil.isNullOrEmpty(goods.getAuctionUrl())) {
            quanToken = convertLinkManager.createTaoBaoToken(uid,goods.getPictUrl(), goods.getTitle(), goods.getAuctionUrl());
            quanToken = convertLinkManager.createTaoBaoToken(uid, goods.getPictUrl(), goods.getTitle(),
                    goods.getAuctionUrl());
        }
        return quanToken;
    }
    @Override
    public TaoBaoLink getTaoBaoLinkForBuy(Long uid, Long auctionId, int pidType) throws ShareGoodsException {
@@ -563,15 +599,51 @@
        app.setAppKey(TaoBaoConstant.TAOBAO_AUTH_APPKEY);
        app.setAppSecret(TaoBaoConstant.TAOBAO_AUTH_APPSECRET);
        app.setPid(TaoBaoConstant.TAOBAO_SPECIAL_PID_DEFAULT);
        TaoBaoLink taoBaoLink = new TaoBaoLink();
        taoBaoLink.setAuctionId(auctionId);
        String baseUrl = taoBaoGoodsCacheUtil.getBaseConvertLink(auctionId, app.getPid());
        if (!StringUtil.isNullOrEmpty(baseUrl)) {
            taoBaoLink.setClickUrl(baseUrl);
            taoBaoLink.setCouponLink(baseUrl);
            return taoBaoLink;
        }
        // 查询是否为大淘客商品
        String link = null;
        DaTaoKeDetailV2 v2 = daTaoKeGoodsDetailV2Service.selectByAuctionId(auctionId);
        if (v2 != null) {
            try {
                TaoBaoGoodsBrief goods = redisManager.getTaoBaoGoodsBrief(auctionId);
                if (goods != null) {
                    if (DaTaoKeUtil.canFilterCouponInfo(goods, v2)) {
                        link = DaTaoKeApiUtil.convertLink(auctionId, app.getPid());
                        if (!StringUtil.isNullOrEmpty(link)) {
                            taoBaoGoodsCacheUtil.cacheBaseConvertLink(auctionId, app.getPid(), link);
                        }
                    }
                }
            } catch (TaobaoGoodsDownException e) {
                throw new ShareGoodsException(4, "商品ID不能为空");
            }
        }
        if (!StringUtil.isNullOrEmpty(link)) {
            taoBaoLink.setCouponLink(link);
            return taoBaoLink;
        }
        TaoBaoGoodsBrief goods = TaoKeApiUtil.specialConvertCoupon(auctionId, app);
        if (goods == null) {
            throw new ShareGoodsException(1, "");
        }
        TaoBaoLink taoBaoLink = new TaoBaoLink();
        taoBaoLink.setAuctionId(auctionId);
        taoBaoLink.setClickUrl(goods.getAuctionUrl());
        taoBaoLink.setCouponLink(goods.getCouponLink());
        if (!StringUtil.isNullOrEmpty(goods.getYsylClickUrl()))
            taoBaoLink.setCouponLink(goods.getYsylClickUrl());
        taoBaoLink.setGoods(goods);
@@ -636,6 +708,31 @@
            goods.setCouponLink(taoBaoLink.getCouponLink());
            goods.setAuctionUrl(taoBaoLink.getAuctionUrl());
        }
        String link = taoBaoGoodsCacheUtil.getBaseConvertLink(auctionId, info.getPid());
        if (link != null) {
            goods.setCouponLink(link);
        } else {// 缓存
            DaTaoKeFilterResult result = daTaoKeGoodsDetailV2Service.filterTaoBaoGoods(goods);
            if (result.getFilterType() == DaTaoKeFilterResult.FILTER_TYPE_COUPON
                    || result.getFilterType() == DaTaoKeFilterResult.FILTER_TYPE_PRICE_AND_COUPON) {
                link = DaTaoKeApiUtil.convertLink(auctionId, info.getPid());
                if (!StringUtil.isNullOrEmpty(link)) {
                    goods.setCouponLink(link);
                    taoBaoGoodsCacheUtil.cacheBaseConvertLink(auctionId, info.getPid(), link);
                }
            }
            if (StringUtil.isNullOrEmpty(link)) {
                TaoBaoGoodsBrief taoBaoLink = TaoKeApiUtil.specialConvertCoupon(auctionId, info);
                if (taoBaoLink == null) {
                    throw new ShareGoodsException(201, "商品转链失败");
                }
                goods.setCouponLink(taoBaoLink.getCouponLink());
                goods.setAuctionUrl(taoBaoLink.getAuctionUrl());
            }
        }
        if (!StringUtil.isNullOrEmpty(relationId)) {
            if (!StringUtil.isNullOrEmpty(goods.getAuctionUrl()))
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/dataoke/DaTaoKeGoodsDetailV2ServiceImpl.java
@@ -21,6 +21,7 @@
import com.yeshi.fanli.dao.goods.taobao.dataoke.DaTaoKeGoodsDetailV2Dao;
import com.yeshi.fanli.dto.dataoke.DaTaoKeGoodsResult;
import com.yeshi.fanli.dto.dataoke.DingDongQiangDTO;
import com.yeshi.fanli.dto.taobao.DaTaoKeFilterResult;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetailV2;
import com.yeshi.fanli.log.LogHelper;
@@ -28,7 +29,6 @@
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.util.VersionUtil;
import com.yeshi.fanli.util.dataoke.DaTaoKeApiUtil;
import com.yeshi.fanli.util.taobao.DaTaoKeUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
@@ -178,11 +178,6 @@
        return goodsList;
    }
    @Override
    public TaoBaoGoodsBrief filterTaoBaoGoods(TaoBaoGoodsBrief goods) {
        return filterTaoBaoGoods(goods, null, null);
    }
    @Override
    public List<DaTaoKeDetailV2> listByIds(List<Long> idsList) {
@@ -451,21 +446,15 @@
    }
    @Override
    public TaoBaoGoodsBrief filterTaoBaoGoods(TaoBaoGoodsBrief goods, String platform, String version) {
    public DaTaoKeFilterResult filterTaoBaoGoods(TaoBaoGoodsBrief goods) {
        List<Long> goodsIdList = new ArrayList<>();
        goodsIdList.add(goods.getAuctionId());
        List<DaTaoKeDetailV2> daTaoKeList = listByGoodsIds(goodsIdList);
        if (daTaoKeList == null || daTaoKeList.size() == 0)
            return goods;
        if (platform != null && version != null && VersionUtil.greaterThan_2_1(platform, version)) {
            // 重新设置标题与券价格
            goods = DaTaoKeUtil.filterTaoBaoGoods(goods, daTaoKeList.get(0), true);
        } else
            goods = DaTaoKeUtil.filterTaoBaoGoods(goods, daTaoKeList.get(0), false);
        return goods;
            return new DaTaoKeFilterResult(goods, DaTaoKeFilterResult.FILTER_TYPE_NONE);
        // 重新设置标题与券价格
        return DaTaoKeUtil.filterTaoBaoGoods(goods, daTaoKeList.get(0), true);
    }
}
fanli/src/main/java/com/yeshi/fanli/service/inter/taobao/dataoke/DaTaoKeGoodsDetailV2Service.java
@@ -4,8 +4,8 @@
import java.util.Date;
import java.util.List;
import com.yeshi.fanli.dao.goods.taobao.dataoke.DaTaoKeGoodsDetailV2Dao;
import com.yeshi.fanli.dto.dataoke.DingDongQiangDTO;
import com.yeshi.fanli.dto.taobao.DaTaoKeFilterResult;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetailV2;
@@ -58,10 +58,8 @@
     * @param goods
     * @return
     */
    public TaoBaoGoodsBrief filterTaoBaoGoods(TaoBaoGoodsBrief goods);
    
    public TaoBaoGoodsBrief filterTaoBaoGoods(TaoBaoGoodsBrief goods,String platform,String version);
    public DaTaoKeFilterResult filterTaoBaoGoods(TaoBaoGoodsBrief goods);
    /**
     * 根据主键查询
fanli/src/main/java/com/yeshi/fanli/util/RedisKeyEnum.java
@@ -10,57 +10,57 @@
    wxmpUserLogin("wxmp-user-login-", "小程序登录"),
    frequencyLimit("frequency-", "频率限制"),
    inviteShortLink("invite-shortlink-", "短连接"),
    taobaoGoods("taobao-goods-", "淘宝商品"),
    taobaoGoodsCommon("taobao-goods-common-", "淘宝商品"),
    taobaoGoodsTemp("taobao-goods-temp-", "淘宝商品缓存"),
    taobaoImgs("taobao-img-", "淘宝图片"),
    taobaoImgs("taobao-img-", "淘宝图片"),
    taobaoGoodsDetailimgs("taobao-goods-detailimgs-size-", "淘宝图片"),
    taobaoShop("taobao-shop-", "淘宝店铺"),
    taobaoTokenCommon("taobao-common-token-", "淘宝口令"),
    taobaoTokenTLJ("taobao-tlj-token-", "淘礼金的口令"),
    taobaoCoupleXCX("taobao-couple-xcx-", "淘宝券"),
    taobaoUserTKToken("taobao-user-token-","用户的淘口令"),
    taobaoUserTKToken("taobao-user-token-", "用户的淘口令"),
    taobaoCachecoupon("cachecoupon-", "淘宝券商品列表"),
    taobaolinkParse("linkParse-", "获取淘宝推广链接"),
    taobaoUpdate("tb-u-", "淘宝商品更新"),
    taobaoQueue("tb-u-q-", "淘宝商品队列"),
    taobaoCode("taobao-code-", "淘宝code"),
    taobaoTokenGoodsMap("tb-t-g_m-","淘宝口令对应商品的映射关系保存"),
    taobaoTokenGoodsMap("tb-t-g_m-", "淘宝口令对应商品的映射关系保存"),
    taobaoBaseLink("tb-b-l-", "淘客商品转链结果缓存"),
    JDGoods("JD-goods-", "京东商品"),
    JDShortUrl("jd-link-to-goods-", "京东短链"),
    jingDongGoods("jingdong-goods-", "京东商品"),
    PDDGoods("PDD-goods-", "拼多多商品"),
    pinDuoDuoGoods("pinduoduo-goods-", "拼多多商品"),
    bindAlipay("bindalipay-", "绑定支付宝"),
    seacrhGoods("integral-seacrh-goods-", "商品搜索"),
    couponByClass("getCouponListByClass-", "通过分类获取券信息"),
    elmeLink("elme-link-", "饿了么链接"),
    recommendGoodsUser("recommend-goods-user-", "用户推荐商品"),
    S11YuShou("s11-yushou-", "双11预售"),
    S11PresaleGoods("s11_presale_goods-", "双11淘宝预售商品"),
    S11PresaleGoodsType("s11_presale_goods-type-", "双11淘宝预售商品类型"),
    S11SuperHongBao("s11-superhongbao-", "双11超级红包"),
    spikeGoodsHour("spikeGoods_hour-", "限时秒杀时间"),
    spikeGoodsList("spikeGoodsList-", "限时秒杀商品列表"),
    spikeGoodsHourNew("spikeGoods_hour_new-", "限时秒杀时间新版"),
    spikeGoodsListNew("spikeGoodsList_new-", "限时秒杀商品新版"),
    addOrder("addorder-", "添加订单"),
    addOrderQueue("addorderqueue-", "添加订单队列"),
    JDOrder("jd-order-", "京东订单"),
    PDDOrder("pdd-order-", "拼多多订单"),
    hongBaoFanLi("hongbao-fanli-", "红包返利"),
    deviceSex("device_sex-", "设备性别版本"),
    convertLinkDocTemp("convert-link-doc-temp-","转链文本暂存"),
    convertLinkDocResultTemp("convert-link-doc-result-temp-","转链文本结果暂存")
    convertLinkDocTemp("convert-link-doc-temp-", "转链文本暂存"),
    convertLinkDocResultTemp("convert-link-doc-result-temp-", "转链文本结果暂存")
    ;
    private final String key;
@@ -78,8 +78,7 @@
    public String getKey() {
        return key;
    }
    public static String getRedisKey(RedisKeyEnum keyEnum, String value) {
        return keyEnum.getKey() + value;
    }
fanli/src/main/java/com/yeshi/fanli/util/cache/TaoBaoGoodsCacheUtil.java
@@ -1,5 +1,7 @@
package com.yeshi.fanli.util.cache;
import java.util.Calendar;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
@@ -9,6 +11,7 @@
import com.yeshi.fanli.util.RedisKeyEnum;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TimeUtil;
@Component
public class TaoBaoGoodsCacheUtil {
@@ -109,7 +112,7 @@
     */
    public void saveTokenGoodsIdMap(String token, Long auctionId) {
        String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.taobaoTokenGoodsMap, StringUtil.Md5(token));
        redisManager.cacheCommonString(key, auctionId+"", 60 * 30);// 有效期30分钟
        redisManager.cacheCommonString(key, auctionId + "", 60 * 30);// 有效期30分钟
    }
    /**
@@ -126,4 +129,38 @@
        return Long.parseLong(goodsId);
    }
    /**
     * 缓存转链结果
     * @Title: cacheBaseConvertLink
     * @Description:
     * @param auctionId
     * @param pid
     * @param link
     * void 返回类型
     * @throws
     */
    public void cacheBaseConvertLink(Long auctionId, String pid, String link) {
        String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.taobaoBaseLink, StringUtil.Md5(auctionId + "#" + pid));
        //
        Calendar calendar = Calendar.getInstance();
        long now = calendar.getTimeInMillis();
        calendar.add(Calendar.HOUR, 1);
        Long time = TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(calendar.getTimeInMillis(), "yyyy-MM-dd HH"),
                "yyyy-MM-dd HH");
        int second = (int) ((time - now) / 1000);
        if (second <= 0)
            second = 1;
        redisManager.cacheCommonString(key, link, second);// 有效期30分钟
    }
    public String getBaseConvertLink(Long auctionId, String pid) {
        String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.taobaoBaseLink, StringUtil.Md5(auctionId + "#" + pid));
        String url = redisManager.getCommonString(key);
        return StringUtil.isNullOrEmpty(url) ? null : url;
    }
}
fanli/src/main/java/com/yeshi/fanli/util/dataoke/DaTaoKeApiUtil.java
@@ -113,8 +113,6 @@
        return result;
    }
    /**
     * 获取大淘客品牌优选 品牌id
     * 
@@ -503,7 +501,7 @@
            for (int cid : cidList)
                cids += cid + ",";
            cids = cids.endsWith(",") ? cids.substring(0, cids.length() - 1) : cids;
            params.put("cids", cids + "");
        }
@@ -691,4 +689,43 @@
        }
        return hotWords;
    }
    /**
     * 高效转链
     * @Title: convertLink
     * @Description:
     * @param auctionId
     * @param pid
     * void 返回类型
     * @throws
     */
    public static String convertLink(Long auctionId, String pid) {
        TaoKeAppInfo app = APP_KEYS[1];
        Map<String, String> params = new TreeMap<>();
        params.put("version", "v1.1.1");
        params.put("goodsId", auctionId + "");
        params.put("pid", pid);
        params.put("appKey", app.getAppKey());
        params.put("sign", getSign(params, app.getAppSecret()));
        String result = null;
        try {
            result = HttpUtil.get("https://openapi.dataoke.com/api/tb-service/get-privilege-link", params,
                    new HashMap<>());
        } catch (Exception e) {
            result = HttpUtil.get("https://openapi.dataoke.com/api/tb-service/get-privilege-link", params,
                    new HashMap<>());
        }
        System.out.println(result);
        JSONObject json = JSONObject.fromObject(result);
        if (json != null) {
            json = json.getJSONObject("data");
            if (json != null) {
                return json.optString("couponClickUrl");
            }
        }
        return null;
    }
}
fanli/src/main/java/com/yeshi/fanli/util/taobao/DaTaoKeUtil.java
@@ -21,6 +21,7 @@
import com.yeshi.fanli.dto.dataoke.DingDongQiangDTO;
import com.yeshi.fanli.dto.dataoke.DingDongTime;
import com.yeshi.fanli.dto.taobao.DaTaoKeFilterResult;
import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
import com.yeshi.fanli.entity.taobao.TaoBaoCoupon;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
@@ -555,7 +556,7 @@
        return desc;
    }
    public static TaoBaoGoodsBrief filterTaoBaoGoods(TaoBaoGoodsBrief goods, DaTaoKeDetailV2 v2,
    public static DaTaoKeFilterResult filterTaoBaoGoods(TaoBaoGoodsBrief goods, DaTaoKeDetailV2 v2,
            boolean filterCouponInfo) {
        if (v2 != null && goods != null) {
            // 重新设置标题与券价格
@@ -563,8 +564,7 @@
            if (!StringUtil.isNullOrEmpty(v2.getMainPic()))
                goods.setPictUrlWhite(v2.getMainPic());
            // 如果没有券信息,则提供券信息
            if (StringUtil.isNullOrEmpty(goods.getCouponInfo()) && v2 != null
                    && !StringUtil.isNullOrEmpty(v2.getCouponLink())) {
            if (canFilterCouponInfo(goods, v2)) {
                try {
                    long time = System.currentTimeMillis();
                    // 券在有效期内并且还有剩余券
@@ -586,8 +586,9 @@
                        goods.setCouponLeftCount(v2.getCouponTotalNum() - v2.getCouponReceiveNum());
                        goods.setCouponLink(v2.getCouponLink());
                        goods.setCouponTotalCount(v2.getCouponTotalNum());
                        goods.setShopCoupon(true);
                        goods.setShopCoupon(false);
                        goods.setZkPrice(v2.getOriginalPrice());
                        return new DaTaoKeFilterResult(goods, DaTaoKeFilterResult.FILTER_TYPE_PRICE_AND_COUPON);
                    }
                } catch (Exception e) {
@@ -605,16 +606,46 @@
                        if (goods.getZkPrice().compareTo(v2.getOriginalPrice()) > 0) {
                            goods.setZkPrice(v2.getOriginalPrice());
                            return new DaTaoKeFilterResult(goods, DaTaoKeFilterResult.FILTER_TYPE_PRICE);
                        }
                    }
                }
            }
        }
        return goods;
        return new DaTaoKeFilterResult(goods, DaTaoKeFilterResult.FILTER_TYPE_NONE);
    }
    /**
     * 是否可以过滤掉券信息
     * @Title: filterCouponInfo
     * @Description:
     * @param goods
     * @param v2
     * void 返回类型
     * @throws
     */
    public static boolean canFilterCouponInfo(TaoBaoGoodsBrief goods, DaTaoKeDetailV2 v2) {
        if (StringUtil.isNullOrEmpty(goods.getCouponInfo()) && v2 != null
                && !StringUtil.isNullOrEmpty(v2.getCouponLink())) {
            try {
                long time = System.currentTimeMillis();
                // 券在有效期内并且还有剩余券
                if (time >= TimeUtil.convertToTimeTemp(v2.getCouponStartTime(), "yyyy-MM-dd HH:mm:ss")
                        && time <= TimeUtil.convertToTimeTemp(v2.getCouponEndTime(), "yyyy-MM-dd HH:mm:ss")
                        && (v2.getCouponTotalNum() - v2.getCouponReceiveNum()) > 0) {
                    return true;
                }
            } catch (Exception e) {
            }
        }
        return false;
    }
    public static TaoBaoGoodsBrief filterTaoBaoGoods(TaoBaoGoodsBrief goods, DaTaoKeDetailV2 v2) {
        return filterTaoBaoGoods(goods, v2, false);
        return filterTaoBaoGoods(goods, v2, false).getGoods();
    }
    public static DaTaoKeDetailV2 filterDaTaoKe(TaoBaoGoodsBrief goods, DaTaoKeDetailV2 detail) {
fanli/src/main/resource/rocket/consumer.xml
@@ -35,49 +35,6 @@
        </property>
    </bean>
    <!-- 红包消息订阅 -->
    <bean id="redPackMessageListener"
        class="com.yeshi.fanli.util.rocketmq.consumer.redpack.RedPackMessageListener"></bean>
    <!-- Group ID 订阅同一个 Topic,可以创建多个 ConsumerBean -->
    <bean id="redPackConsumer" class="com.aliyun.openservices.ons.api.bean.ConsumerBean"
        init-method="start" destroy-method="shutdown">
        <property name="properties"> <!--消费者配置信息 -->
            <props>
                <prop key="AccessKey">${rocketmq.AccessKey}</prop>
                <prop key="SecretKey">${rocketmq.SecretKey}</prop>
                <prop key="GROUP_ID">GID_RED_PACK</prop>
                <prop key="NAMESRV_ADDR">${rocketmq.NAMESRV_ADDR}</prop>
                <prop key="ConsumeThreadNums">50</prop>
            </props>
        </property>
        <property name="subscriptionTable">
            <map>
                <!-- 产生订单/延时,订单到账 -->
                <entry value-ref="redPackMessageListener">
                    <key>
                        <bean class="com.aliyun.openservices.ons.api.bean.Subscription">
                            <property name="topic" value="TOPIC_ORDER" />
                            <property name="expression"
                                value="orderStatistic||orderFanLiActual||orderStatisticDelay||orderFanLiSeparateByOrderNo" />
                        </bean>
                    </key>
                </entry>
                <!-- 用户注册,账号绑定,邀请好友 ,完成金币任务,红包赠送到期 -->
                <entry value-ref="redPackMessageListener">
                    <key>
                        <bean class="com.aliyun.openservices.ons.api.bean.Subscription">
                            <property name="topic" value="TOPIC_USER" />
                            <property name="expression"
                                value="inviteSuccess||userAccountBinding||integralTaskFinish||redPackGift||redPackGiftDrawback" />
                        </bean>
                    </key>
                </entry>
            </map>
        </property>
    </bean>
    <!-- 金币消息订阅 -->
    <bean id="integralMessageListener"
        class="com.yeshi.fanli.util.rocketmq.consumer.integral.IntegralMessageListener"></bean>