yj
2020-03-10 da172401669413a57b92c681740056dfd75d295e
动态商品信息更新
5个文件已修改
187 ■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsControllerV2.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/dynamic/GoodsEvaluateDao.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java 134 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoGoodsUpdateServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/dynamic/GoodsEvaluateService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/GoodsControllerV2.java
@@ -50,6 +50,7 @@
import com.yeshi.fanli.service.inter.config.BusinessSystemService;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.config.SystemClientParamsService;
import com.yeshi.fanli.service.inter.dynamic.GoodsEvaluateService;
import com.yeshi.fanli.service.inter.goods.CollectionGoodsV2Service;
import com.yeshi.fanli.service.inter.goods.ScanHistoryV2Service;
import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
@@ -198,6 +199,9 @@
    @Resource
    private UserVipConfigService userVipConfigService;
    @Resource
    private GoodsEvaluateService goodsEvaluateService;
    /**
     * 淘宝商品详情
@@ -814,6 +818,12 @@
                } catch (Exception e) {
                    e.printStackTrace();
                }
                try {
                    goodsEvaluateService.updateJDGoods(goods);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
@@ -992,6 +1002,12 @@
                } catch (Exception e) {
                    e.printStackTrace();
                }
                try {
                    goodsEvaluateService.updatePDDGoods(pddGoods);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
fanli/src/main/java/com/yeshi/fanli/dao/dynamic/GoodsEvaluateDao.java
@@ -12,6 +12,8 @@
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Repository;
import com.mongodb.BasicDBObject;
import com.mongodb.QueryOperators;
import com.yeshi.fanli.entity.dynamic.GoodsEvaluate;
import com.yeshi.fanli.util.StringUtil;
@@ -143,4 +145,21 @@
        return mongoTemplate.find(query, GoodsEvaluate.class);
    }
    /**
     * 查询有效
     * @param start
     * @param count
     * @param key
     * @return
     */
    public List<GoodsEvaluate> queryExist(int goodsType, Long goodsId) {
        Query query = new Query();
        query.addCriteria(Criteria.where("dynamicType").is(1));
        query.addCriteria(Criteria.where("state").is(1));
        query.addCriteria(Criteria.where("goods.goodsId").is(goodsId));
        query.addCriteria(Criteria.where("goods.goodsType").is(goodsType));
        return mongoTemplate.find(query, GoodsEvaluate.class);
    }
}
fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java
@@ -70,6 +70,7 @@
import com.yeshi.fanli.util.jd.JDApiUtil;
import com.yeshi.fanli.util.jd.JDUtil;
import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil;
import com.yeshi.fanli.util.pinduoduo.PinDuoDuoUtil;
import com.yeshi.fanli.util.taobao.DaTaoKeUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
@@ -355,10 +356,8 @@
        GoodsDetailVO goodsDetailVO = null;
        JDGoods jdGoods = null;
        PDDGoodsDetail pddGoods = null;
        BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
        BigDecimal shareRate = hongBaoManageService.getShareRate();
        BigDecimal vipFanLiRate = hongBaoManageService.getVIPFanLiRate();
        ConfigParamsDTO params = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE, vipFanLiRate);
        ConfigParamsDTO params = hongBaoManageService.getShowComputeRate("android", "55");
        params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
        if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
            try {
                TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(goodsId);
@@ -567,10 +566,8 @@
    public GoodsDetailVO getGoodsDetailVO(Long goodsId, Integer goodsType) throws GoodsEvaluateException {
        GoodsDetailVO goodsDetail = null;
        BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
        BigDecimal shareRate = hongBaoManageService.getShareRate();
        BigDecimal vipFanLiRate = hongBaoManageService.getVIPFanLiRate();
        ConfigParamsDTO params = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE, vipFanLiRate);
        ConfigParamsDTO params = hongBaoManageService.getShowComputeRate("android", "55");
        params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
        if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
            try {
                TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(goodsId);
@@ -1560,7 +1557,11 @@
                                commentInfoNew.setTagList(tagListNew);
                                commentNew.add(commentInfoNew);
                                continue;
                            } else {
                                continue;
                            }
                        } else {
                            continue;
                        }
                    }
@@ -1626,11 +1627,8 @@
        try {
            Date now = new Date();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
            BigDecimal shareRate = hongBaoManageService.getShareRate();
            BigDecimal vipFanLiRate = hongBaoManageService.getVIPFanLiRate();
            ConfigParamsDTO paramsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE,
                    vipFanLiRate);
            ConfigParamsDTO params = hongBaoManageService.getShowComputeRate("android", "55");
            params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
            for (GoodsEvaluate goodsEvaluate : list) {
                // 是否2个小时之内已更新
                Date updateTime = goodsEvaluate.getUpdateTime();
@@ -1667,7 +1665,7 @@
                GoodsDetailVO goods = goodsEvaluate.getGoods();
                if (goods != null) {
                    GoodsDetailVO goodsNew = getGoodsNewInfo(goods.getGoodsId(), goods.getGoodsType(), paramsDTO);
                    GoodsDetailVO goodsNew = getGoodsNewInfo(goods.getGoodsId(), goods.getGoodsType(), params);
                    if (goodsNew != null) {
                        goodsEvaluate.setGoods(goodsNew);
                    } else {
@@ -1689,7 +1687,7 @@
                    }
                    GoodsDetailVO goodsDetailVO = getGoodsNewInfo(simpleGoods.getGoodsId(), simpleGoods.getGoodsType(),
                            paramsDTO);
                            params);
                    if (goodsDetailVO != null) {
                        simpleGoods.setPrice(goodsDetailVO.getCouponPrice());
                        simpleGoods.setState(0);
@@ -1712,7 +1710,7 @@
                        }
                    }
                }
                goodsEvaluate.setImgList(imgList);
                goodsEvaluate.setUpdateTime(new Date());
                goodsEvaluateDao.save(goodsEvaluate);
            }
@@ -1892,11 +1890,9 @@
                return false;
            }
            BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
            BigDecimal shareRate = hongBaoManageService.getShareRate();
            BigDecimal vipFanLiRate = hongBaoManageService.getVIPFanLiRate();
            ConfigParamsDTO params = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE, vipFanLiRate);
            GoodsDetailVO goodsVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, params);
            ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate("android", "55");
            paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
            GoodsDetailVO goodsVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, paramsDTO);
            // 发布用户
            ActivityUser user = activityUserService.getRandomByDaTaoKeCid(daTaoKe.getCid());
@@ -2164,4 +2160,100 @@
        }
        return true;
    }
    @Override
    public void updateTaoBaoGoods(TaoBaoGoodsBrief goods) {
        try {
            if (goods == null) {
                return;
            }
            List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_TAOBAO, goods.getAuctionId());
            if (queryExist == null || queryExist.size() == 0) {
                return;
            }
            ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate("android", "55");
            paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
            GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertTaoBao(goods, paramsDTO);
            updateGoods(queryExist, goodsNew);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    @Override
    public void updateJDGoods(JDGoods jdGoods) {
        if (jdGoods == null) {
            return;
        }
        List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_JD, jdGoods.getSkuId());
        if (queryExist == null || queryExist.size() == 0) {
            return;
        }
        ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate("android", "55");
        paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
        GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertJDGoods(jdGoods, paramsDTO);
        updateGoods(queryExist, goodsNew);
    }
    @Override
    public void updatePDDGoods(PDDGoodsDetail pddGoods) {
        if (pddGoods == null) {
            return;
        }
        List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_PDD, pddGoods.getGoodsId());
        if (queryExist == null || queryExist.size() == 0) {
            return;
        }
        ConfigParamsDTO paramsDTO = hongBaoManageService.getShowComputeRate("android", "55");
        paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
        GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertPDDGoods(pddGoods, paramsDTO);
        updateGoods(queryExist, goodsNew);
    }
    private void updateGoods(List<GoodsEvaluate> listExist, GoodsDetailVO goodsNew) {
        long goodsId = goodsNew.getGoodsId();
        int goodsType = goodsNew.getGoodsType();
        for (GoodsEvaluate goodsEvaluate: listExist) {
            GoodsDetailVO goodsDetailVO = goodsEvaluate.getGoods();
            if (goodsDetailVO != null && goodsDetailVO.getGoodsId() != null
                && goodsDetailVO.getGoodsId() == goodsId && goodsDetailVO.getGoodsType() == goodsType ) {
                goodsEvaluate.setGoods(goodsNew);
            }
            // 更新商品信息
            List<ImgInfo> imgList = goodsEvaluate.getImgList();
            if (imgList == null || imgList.size() == 0) {
                continue;
            }
            for (ImgInfo imgInfo : imgList) {
                SimpleGoods simpleGoods = imgInfo.getGoods();
                if (simpleGoods == null) {
                    continue;
                }
                simpleGoods.setState(0);
                simpleGoods.setPrice(goodsDetailVO.getCouponPrice());
                CouponInfoVO couponInfo = goodsDetailVO.getCouponInfo();
                if (couponInfo == null) {
                    simpleGoods.setPrice(goodsDetailVO.getZkPrice());
                } else {
                    simpleGoods.setPrice(goodsDetailVO.getCouponPrice());
                    simpleGoods.setAmount(couponInfo.getAmount());
                }
                imgInfo.setGoods(simpleGoods);
                imgInfo.setGoodsVO(goodsDetailVO);
            }
            goodsEvaluate.setImgList(imgList);
            goodsEvaluate.setUpdateTime(new Date());
            goodsEvaluateDao.save(goodsEvaluate);
        }
    }
}
fanli/src/main/java/com/yeshi/fanli/service/impl/taobao/TaoBaoGoodsUpdateServiceImpl.java
@@ -24,6 +24,7 @@
import com.yeshi.fanli.exception.taobao.TaobaoGoodsUpdateException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.activity.ActivityGoodsUpdateService;
import com.yeshi.fanli.service.inter.dynamic.GoodsEvaluateService;
import com.yeshi.fanli.service.inter.goods.CommonGoodsService;
import com.yeshi.fanli.service.inter.lable.QualityFactoryGoodsUpdateService;
import com.yeshi.fanli.service.inter.taobao.ShareHotGoodsService;
@@ -66,6 +67,9 @@
    @Resource
    private TLJFreeBuyGoodsUpdateService tljFreeBuyGoodsUpdateService;
    @Resource
    private GoodsEvaluateService goodsEvaluateService;
    @Override
    public void startUpdate() {
@@ -158,6 +162,8 @@
        // 更新新人免单库商品
        tljFreeBuyGoodsUpdateService.updateGoods(goods);
        goodsEvaluateService.updateTaoBaoGoods(goods);
        // 总要商品更新
        updateImplTBGoods(goods);
    }
fanli/src/main/java/com/yeshi/fanli/service/inter/dynamic/GoodsEvaluateService.java
@@ -5,10 +5,13 @@
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
import com.yeshi.fanli.entity.dynamic.CommentInfo;
import com.yeshi.fanli.entity.dynamic.DynamicInfo;
import com.yeshi.fanli.entity.dynamic.GoodsEvaluate;
import com.yeshi.fanli.entity.dynamic.ImgInfo;
import com.yeshi.fanli.entity.jd.JDGoods;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.exception.dynamic.GoodsEvaluateException;
public interface GoodsEvaluateService {
@@ -147,4 +150,13 @@
    public void addGoodsEvaluateByDaTaoKe();
    public void updateTaoBaoGoods(TaoBaoGoodsBrief goods);
    public void updateJDGoods(JDGoods jdGoods);
    public void updatePDDGoods(PDDGoodsDetail pddGoods);
}