admin
2021-04-28 a7454d8a6325566753358b37ffabfae2faa0ca7f
fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java
@@ -49,13 +49,12 @@
import com.yeshi.fanli.entity.dynamic.SimpleGoods;
import com.yeshi.fanli.entity.jd.JDGoods;
import com.yeshi.fanli.entity.system.ConfigKeyEnum;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.TaoBaoLink;
import com.yeshi.fanli.entity.taobao.dataoke.DaTaoKeDetailV2;
import com.yeshi.goods.facade.entity.taobao.dataoke.DaTaoKeDetailV2;
import com.yeshi.fanli.exception.dynamic.ActivityUserException;
import com.yeshi.fanli.exception.dynamic.GoodsEvaluateException;
import com.yeshi.fanli.exception.goods.ConvertLinkExceptionException;
import com.yeshi.fanli.exception.share.ShareGoodsException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.activity.ActivityUserService;
@@ -64,15 +63,15 @@
import com.yeshi.fanli.service.inter.goods.ShareGoodsService;
import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService;
import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
import com.yeshi.fanli.service.inter.taobao.dataoke.DaTaoKeGoodsDetailV2Service;
import com.yeshi.goods.facade.service.DaTaoKeGoodsDetailV2Service;
import com.yeshi.fanli.service.manger.goods.ConvertLinkManager;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.FilePathEnum;
import com.yeshi.fanli.util.FileUtil;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import org.yeshi.utils.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TimeUtil;
import org.yeshi.utils.TimeUtil;
import com.yeshi.fanli.util.cache.JDGoodsCacheUtil;
import com.yeshi.fanli.util.cache.PinDuoDuoCacheUtil;
import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
@@ -83,7 +82,7 @@
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import com.yeshi.fanli.vo.goods.CouponInfoVO;
import com.yeshi.fanli.vo.goods.GoodsDetailVO;
import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
import com.yeshi.common.vo.ClientTextStyleVO;
@Service
public class GoodsEvaluateServiceImpl implements GoodsEvaluateService {
@@ -427,8 +426,8 @@
        GoodsDetailVO goodsDetailVO = null;
        JDGoods jdGoods = null;
        PDDGoodsDetail pddGoods = null;
        ConfigParamsDTO params = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
        params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
        ConfigParamsDTO params = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55", system);
        params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate(system));
        if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
            try {
                TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(Long.parseLong(goodsId));
@@ -557,7 +556,7 @@
                    couponUrl = couponInfo.getLink();
                }
                String materialId = "https://item.jd.com/" + goodsId + ".html";
                String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl,
                String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, null,
                        JDApiUtil.POSITION_SHARE + "", "1");
                String template = configService.getValue(ConfigKeyEnum.quickShareJDCommentText.getKey(), system);
                if (jumpLink == null) {
@@ -565,7 +564,8 @@
                }
                commentText = template.replace("[链接]", jumpLink);
            } else if (goodsType == Constant.SOURCE_TYPE_PDD) {
                String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(Long.parseLong(goodsId), PinDuoDuoApiUtil.PID_SHARE + "", "1");
                PDDGoodsDetail goodsDetail = PinDuoDuoApiUtil.getGoodsDetail(Long.parseLong(goodsId), PinDuoDuoApiUtil.PID_SHARE + "", "1");
                String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(goodsDetail.getGoodsSign(), PinDuoDuoApiUtil.PID_SHARE + "", "1");
                if (jumpLink == null) {
                    throw new GoodsEvaluateException(1, "该商品转链失败");
                }
@@ -625,12 +625,15 @@
                couponUrl = couponInfo.getLink();
            }
            String materialId = "https://item.jd.com/" + goodsDetailVO.getGoodsId() + ".html";
            String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, JDApiUtil.POSITION_SHARE + "",
            String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, null, JDApiUtil.POSITION_SHARE + "",
                    "1");
            String template = configService.getValue(ConfigKeyEnum.quickShareJDCommentText.getKey(), system);
            commentText = template.replace("[链接]", jumpLink);
        } else if (goodsDetailVO.getGoodsType() == Constant.SOURCE_TYPE_PDD) {
            String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(Long.parseLong(goodsDetailVO.getGoodsId()),
            PDDGoodsDetail goodsDetail = PinDuoDuoApiUtil.getGoodsDetail(Long.parseLong(goodsDetailVO.getGoodsId()),
                    PinDuoDuoApiUtil.PID_SHARE + "", "1");
            String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(goodsDetail.getGoodsSign(),
                    PinDuoDuoApiUtil.PID_SHARE + "", "1");
            String template = configService.getValue(ConfigKeyEnum.quickSharePDDCommentText.getKey(), system);
            commentText = template.replace("[链接]", jumpLink);
@@ -647,10 +650,10 @@
        return commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n");
    }
    public GoodsDetailVO getGoodsDetailVO(Long goodsId, Integer goodsType) throws GoodsEvaluateException {
    public GoodsDetailVO getGoodsDetailVO(Long goodsId, Integer goodsType, SystemEnum system) throws GoodsEvaluateException {
        GoodsDetailVO goodsDetail = null;
        ConfigParamsDTO params = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
        params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
        ConfigParamsDTO params = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55", system);
        params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate(system));
        if (goodsType == Constant.SOURCE_TYPE_TAOBAO) {
            try {
                TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(goodsId);
@@ -758,7 +761,7 @@
                for (int i = 0; i < goodsArray.length && i < 9; i++) {
                    String goodsids = goodsArray[i];
                    String[] g = goodsids.split("-");
                    GoodsDetailVO goodsDetailVO = getGoodsDetailVO(Long.parseLong(g[0]), Integer.parseInt(g[1]));
                    GoodsDetailVO goodsDetailVO = getGoodsDetailVO(Long.parseLong(g[0]), Integer.parseInt(g[1]), resultObj.getSystem());
                    if (goodsDetailVO == null) {
                        continue;
                    }
@@ -908,7 +911,7 @@
                }
            } else if (i == 0 && kind == 1) {
                try {
                    convertLinkManager.convertLinkFromText(content, Constant.LINK_TOKEN_VERIFY_UID, true);
                    convertLinkManager.convertLinkFromText(content, Constant.LINK_TOKEN_VERIFY_UID, true, false);
                } catch (Exception e) {
                    throw new GoodsEvaluateException(1, "不包含可转链的口令与链接");
                }
@@ -978,7 +981,7 @@
        String content = commentInfo.getContent();
        if (!StringUtil.isNullOrEmpty(content) && commentInfo.getNeedSpin()) {
            try {
                convertLinkManager.convertLinkFromText(content, Constant.LINK_TOKEN_VERIFY_UID, true);
                convertLinkManager.convertLinkFromText(content, Constant.LINK_TOKEN_VERIFY_UID, true, false);
            } catch (ConvertLinkExceptionException e) {
                if (ConvertLinkExceptionException.CODE_NONE != e.getCode()) {
                    throw new GoodsEvaluateException(1, "包含不可转链的口令与链接");
@@ -1638,7 +1641,7 @@
    }
    @Override
    @Cacheable(value = "dynamicCache", key = "'queryMaterialsCache-'+#start+'-'+#type")
    @Cacheable(value = "dynamicCache", key = "'queryMaterialsCache-'+#start+'-'+#type+'-'+#system")
    public List<GoodsEvaluate> queryMaterialsCache(int start, int count, int type, SystemEnum system) throws Exception {
        List<GoodsEvaluate> list = goodsEvaluateDao.queryValid(start, count, type, system);
        if (list == null) {
@@ -1701,7 +1704,7 @@
                                List<String> activityIdList = convertLinkManager.getTaoBaoOfficialActivityId(content);
                                for (String st : activityIdList)
                                    content = content.replace(st, "");
                                content = content.replace("{relationId}", "");
                                commentInfoNew.setContent(content);
                            }
                        }
@@ -1712,6 +1715,8 @@
                        List<String> activityIdList = convertLinkManager.getTaoBaoOfficialActivityId(content);
                        for (String st : activityIdList)
                            content = content.replace(st, "");
                        content = content.replace("{relationId}", "");
                        commentInfoNew.setContent(content);
                    }
@@ -1821,9 +1826,10 @@
        try {
            Date now = new Date();
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            ConfigParamsDTO params = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
            params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
            for (GoodsEvaluate goodsEvaluate : list) {
                ConfigParamsDTO params = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55", goodsEvaluate.getSystem());
                params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate(goodsEvaluate.getSystem()));
                // 是否2个小时之内已更新
                Date updateTime = goodsEvaluate.getUpdateTime();
                if (updateTime != null) {
@@ -1976,8 +1982,8 @@
        imgs.addAll(goodsBrief.getImgList());
        // 商品VO
        ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
        paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
        ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55", system);
        paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate(system));
        GoodsDetailVO goodsVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, paramsDTO);
        // 商品图片信息
@@ -2076,6 +2082,7 @@
        goodsEvaluate.setLineNum(lineNum);
        goodsEvaluate.setImgList(imgList);
        goodsEvaluate.setComments(commentsNew);
        goodsEvaluate.setSystem(system);
        goodsEvaluateDao.save(goodsEvaluate);
    }
@@ -2100,8 +2107,8 @@
        }
        // 商品VO
        ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
        paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
        ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55", system);
        paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate(system));
        GoodsDetailVO goodsVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, paramsDTO);
        // 商品图片信息
@@ -2230,6 +2237,7 @@
        goodsEvaluate.setLineNum(lineNum);
        goodsEvaluate.setImgList(imgList);
        goodsEvaluate.setComments(commentsNew);
        goodsEvaluate.setSystem(system);
        goodsEvaluateDao.save(goodsEvaluate);
        return result;
    }
@@ -2286,8 +2294,8 @@
                return false;
            }
            ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
            paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
            ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55", system);
            paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate(system));
            GoodsDetailVO goodsVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, paramsDTO);
            ActivityUser user = null;
@@ -2347,6 +2355,7 @@
            goodsEvaluate.setPublishTime(new Date());
            goodsEvaluate.setCreateTime(new Date());
            goodsEvaluate.setUpdateTime(new Date());
            goodsEvaluate.setSystem(system);
            List<String> goodsimgs = goodsBrief.getImgList();
@@ -2515,8 +2524,8 @@
                if (queryExist == null || queryExist.size() == 0) {
                    continue;
                }
                ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
                paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
                ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55", system);
                paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate(system));
                GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertTaoBao(goods, paramsDTO);
                updateGoods(queryExist, goodsNew);
            }
@@ -2537,8 +2546,8 @@
                continue;
            }
            ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
            paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
            ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55", system);
            paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate(system));
            GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertJDGoods(jdGoods, paramsDTO);
            updateGoods(queryExist, goodsNew);
@@ -2556,8 +2565,8 @@
                continue;
            }
            ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
            paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
            ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55", system);
            paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate(system));
            GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertPDDGoods(pddGoods, paramsDTO);
            updateGoods(queryExist, goodsNew);
        }
@@ -2575,8 +2584,8 @@
                continue;
            }
            ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
            paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
            ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55", system);
            paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate(system));
            GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertVIPGoods(goods, paramsDTO);
            updateGoods(queryExist, goodsNew);
        }
@@ -2593,18 +2602,18 @@
            if (queryExist == null || queryExist.size() == 0) {
                continue;
            }
            ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55");
            paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate());
            ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55", system);
            paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate(system));
            GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertSuningGoods(goods, paramsDTO);
            updateGoods(queryExist, goodsNew);
        }
    }
    private void updateGoods(List<GoodsEvaluate> listExist, GoodsDetailVO goodsNew) {
        String goodsId = goodsNew.getGoodsId();
        int goodsType = goodsNew.getGoodsType();
        for (GoodsEvaluate goodsEvaluate : listExist) {
            String goodsId = goodsNew.getGoodsId();
            int goodsType = goodsNew.getGoodsType();
            GoodsDetailVO goodsDetailVO = goodsEvaluate.getGoods();
            if (goodsDetailVO != null && goodsDetailVO.getGoodsId() != null && goodsDetailVO.getGoodsId().equalsIgnoreCase(goodsId)
                    && goodsDetailVO.getGoodsType() == goodsType) {
@@ -2748,8 +2757,8 @@
    @Override
    public GoodsEvaluate queryExistSingle(String goodsId, int goodsType,SystemEnum system) {
        List<GoodsEvaluate> list = goodsEvaluateDao.queryExistSingle(goodsType, goodsId,system);
    public GoodsEvaluate queryExistSingle(String goodsId, int goodsType, SystemEnum system) {
        List<GoodsEvaluate> list = goodsEvaluateDao.queryExistSingle(goodsType, goodsId, system);
        if (list != null && list.size() > 0)
            return list.get(0);
        return null;