From 81da61b828e29b7745e1382dfbbaeb685dc083ef Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 23 一月 2024 17:17:55 +0800 Subject: [PATCH] 抖音转链修改 --- fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java | 286 +++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 227 insertions(+), 59 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java index 4a33520..843f4a7 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java @@ -1,47 +1,15 @@ package com.yeshi.fanli.service.impl.dynamic; -import java.awt.image.BufferedImage; -import java.io.File; -import java.io.FileInputStream; -import java.io.InputStream; -import java.math.BigDecimal; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.Comparator; -import java.util.Date; -import java.util.List; -import java.util.UUID; - -import javax.annotation.Resource; -import javax.imageio.ImageIO; - -import com.yeshi.fanli.entity.SystemEnum; -import com.yeshi.fanli.entity.SystemFunction; -import com.yeshi.fanli.entity.SystemPIDInfo; -import com.yeshi.fanli.exception.taobao.TaoBaoConvertLinkException; -import com.yeshi.fanli.service.manger.PIDManager; -import com.yeshi.fanli.service.manger.goods.TaoBaoLinkManager; -import com.yeshi.fanli.util.*; -import com.yeshi.fanli.util.FileUtil; -import com.yeshi.fanli.util.StringUtil; -import org.apache.commons.beanutils.PropertyUtils; -import org.springframework.cache.annotation.CacheEvict; -import org.springframework.cache.annotation.Cacheable; -import org.springframework.core.task.TaskExecutor; -import org.springframework.stereotype.Service; -import org.springframework.web.multipart.MultipartFile; -import org.springframework.web.multipart.MultipartHttpServletRequest; -import org.yeshi.utils.*; -import org.yeshi.utils.tencentcloud.COSManager; - +import com.yeshi.common.vo.ClientTextStyleVO; import com.yeshi.fanli.dao.dynamic.GoodsEvaluateDao; import com.yeshi.fanli.dto.GoodsMoneyConfigParamsDTO; import com.yeshi.fanli.dto.jd.JDCouponInfo; import com.yeshi.fanli.dto.pdd.PDDGoodsDetail; import com.yeshi.fanli.dto.suning.SuningGoodsInfo; import com.yeshi.fanli.dto.vip.goods.VIPGoodsInfo; +import com.yeshi.fanli.entity.SystemEnum; +import com.yeshi.fanli.entity.SystemFunction; +import com.yeshi.fanli.entity.SystemPIDInfo; import com.yeshi.fanli.entity.bus.activity.ActivityRuleUser; import com.yeshi.fanli.entity.bus.activity.ActivityUser; import com.yeshi.fanli.entity.bus.clazz.GoodsClass; @@ -54,13 +22,13 @@ import com.yeshi.fanli.entity.dynamic.SimpleGoods; import com.yeshi.fanli.entity.jd.JDGoods; import com.yeshi.fanli.entity.system.ConfigKeyEnum; -import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief; import com.yeshi.fanli.entity.taobao.TaoBaoLink; -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.goods.ConvertLinkException; +import com.yeshi.fanli.exception.taobao.TaoBaoConvertLinkException; import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException; +import com.yeshi.fanli.lijin.manager.GoodsLijinMnager; import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.activity.ActivityUserService; import com.yeshi.fanli.service.inter.config.ConfigService; @@ -68,20 +36,52 @@ 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.goods.facade.service.DaTaoKeGoodsDetailV2Service; +import com.yeshi.fanli.service.manger.PIDManager; import com.yeshi.fanli.service.manger.goods.ConvertLinkManager; +import com.yeshi.fanli.service.manger.goods.TaoBaoLinkManager; +import com.yeshi.fanli.service.manger.goods.tb.DaTaoKeTipOffManager; +import com.yeshi.fanli.util.*; import com.yeshi.fanli.util.cache.JDGoodsCacheUtil; import com.yeshi.fanli.util.cache.PinDuoDuoCacheUtil; +import com.yeshi.fanli.util.factory.CommonGoodsFactory; import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory; +import com.yeshi.fanli.util.goods.douyin.vo.DYGoods; +import com.yeshi.fanli.util.goods.douyin.vo.DYGoodsDetail; 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.taobao.DaTaoKeTipOffUtil; import com.yeshi.fanli.util.taobao.DaTaoKeUtil; import com.yeshi.fanli.util.taobao.TaoBaoUtil; +import com.yeshi.fanli.util.taobao.TaoKeApiUtil; import com.yeshi.fanli.vo.goods.CouponInfoVO; import com.yeshi.fanli.vo.goods.GoodsDetailVO; -import com.yeshi.common.vo.ClientTextStyleVO; -import sun.plugin2.util.SystemUtil; +import com.yeshi.goods.facade.dto.taobao.dataoke.DaTaoKeListTopOffDTO; +import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief; +import com.yeshi.goods.facade.entity.taobao.dataoke.DaTaoKeDetailV2; +import com.yeshi.goods.facade.service.DaTaoKeGoodsDetailV2Service; +import org.apache.commons.beanutils.PropertyUtils; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.core.task.TaskExecutor; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.yeshi.utils.DateUtil; +import org.yeshi.utils.ImageCropUtil; +import org.yeshi.utils.MoneyBigDecimalUtil; +import org.yeshi.utils.TimeUtil; +import org.yeshi.utils.tencentcloud.COSManager; + +import javax.annotation.Resource; +import javax.imageio.ImageIO; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.*; @Service public class GoodsEvaluateServiceImpl implements GoodsEvaluateService { @@ -128,6 +128,9 @@ @Resource private PIDManager pidManager; + + @Resource + private GoodsLijinMnager goodsLijinMnager; @Override public void switchState(String id) throws GoodsEvaluateException { @@ -436,7 +439,7 @@ params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate(system)); if (goodsType == Constant.SOURCE_TYPE_TAOBAO) { try { - TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(Long.parseLong(goodsId)); + TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(goodsId); goodsDetailVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, params); } catch (TaobaoGoodsDownException e) { throw new GoodsEvaluateException(1, "鍟嗗搧宸蹭笅鏋�"); @@ -554,7 +557,7 @@ String commentText = ""; if (addComment) { if (goodsType == Constant.SOURCE_TYPE_TAOBAO) { - TaoBaoLink taoBaoLink = taoBaoLinkManager.getTaoBaoLinkForShare(system, 1L, Long.parseLong(goodsId), "0", null); + TaoBaoLink taoBaoLink = taoBaoLinkManager.getTaoBaoLinkForShare(system, 1L, goodsId, "0", null); String template = configService.getValue(ConfigKeyEnum.quickShareTBCommentText.getKey(), system); commentText = template.replace("[娣樺彛浠", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken())); } else if (goodsType == Constant.SOURCE_TYPE_JD) { @@ -622,7 +625,7 @@ private String createTokenAndLink(GoodsDetailVO goodsDetailVO, SystemEnum system) throws Exception { String commentText = ""; if (goodsDetailVO.getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) { - TaoBaoLink taoBaoLink = taoBaoLinkManager.getTaoBaoLinkForShare(system, 1L, Long.parseLong(goodsDetailVO.getGoodsId()), "0", null); + TaoBaoLink taoBaoLink = taoBaoLinkManager.getTaoBaoLinkForShare(system, 1L, goodsDetailVO.getGoodsId(), "0", null); String template = configService.getValue(ConfigKeyEnum.quickShareTBCommentText.getKey(), system); commentText = template.replace("[娣樺彛浠", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken())); } else if (goodsDetailVO.getGoodsType() == Constant.SOURCE_TYPE_JD) { @@ -662,7 +665,7 @@ 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, SystemEnum system) throws GoodsEvaluateException { + public GoodsDetailVO getGoodsDetailVO(String goodsId, Integer goodsType, SystemEnum system) throws GoodsEvaluateException { GoodsDetailVO goodsDetail = null; GoodsMoneyConfigParamsDTO params = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55", system); params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate(system)); @@ -678,10 +681,10 @@ throw new GoodsEvaluateException(1, "鍟嗗搧宸蹭笅鏋�"); } } else if (goodsType == Constant.SOURCE_TYPE_JD) { - JDGoods goodsInfo = jdGoodsCacheUtil.getGoodsInfo(goodsId); + JDGoods goodsInfo = jdGoodsCacheUtil.getGoodsInfo(Long.parseLong(goodsId)); goodsDetail = GoodsDetailVOFactory.convertJDGoods(goodsInfo, params); } else if (goodsType == Constant.SOURCE_TYPE_PDD) { - PDDGoodsDetail goodsInfo = pinDuoDuoCacheUtil.getGoodsInfo(goodsId); + PDDGoodsDetail goodsInfo = pinDuoDuoCacheUtil.getGoodsInfo(Long.parseLong(goodsId)); goodsDetail = GoodsDetailVOFactory.convertPDDGoods(goodsInfo, params); } if (goodsDetail != null) @@ -775,7 +778,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]), resultObj.getSystem()); + GoodsDetailVO goodsDetailVO = getGoodsDetailVO(g[0], Integer.parseInt(g[1]), resultObj.getSystem()); if (goodsDetailVO == null) { continue; } @@ -996,8 +999,8 @@ if (!StringUtil.isNullOrEmpty(content) && commentInfo.getNeedSpin()) { try { convertLinkManager.convertLinkFromText(system, content, Constant.LINK_TOKEN_VERIFY_UID, true, false); - } catch (ConvertLinkExceptionException e) { - if (ConvertLinkExceptionException.CODE_NONE != e.getCode()) { + } catch (ConvertLinkException e) { + if (ConvertLinkException.CODE_NONE != e.getCode()) { throw new GoodsEvaluateException(1, "鍖呭惈涓嶅彲杞摼鐨勫彛浠や笌閾炬帴"); } } catch (Exception e) { @@ -1720,7 +1723,7 @@ for (String st : activityIdList) content = content.replace(st, ""); content = content.replace("{relationId}", ""); - if (system == SystemEnum.yhqjx) { + if (system == SystemEnum.yhqjx || system == SystemEnum.hsb) { content = content.replace("\n", "<br>"); } commentInfoNew.setContent(content); @@ -1812,7 +1815,7 @@ simpleGoods.setState(1); simpleGoods.setRemarks("璇勮楠岃瘉涓嬫灦"); } - if (system == SystemEnum.yhqjx) { + if (system == SystemEnum.yhqjx || system == SystemEnum.hsb) { imgInfo.setGoods(null); } } @@ -1964,7 +1967,7 @@ if (goodsType == Constant.SOURCE_TYPE_TAOBAO) { TaoBaoGoodsBrief goods; try { - goods = redisManager.getTaoBaoGoodsBrief(Long.parseLong(goodsId)); + goods = redisManager.getTaoBaoGoodsBrief(goodsId); if (goods != null) { vo = GoodsDetailVOFactory.convertTaoBao(goods, paramsDTO); } @@ -2000,7 +2003,7 @@ TaoBaoGoodsBrief goodsBrief = null; try { - goodsBrief = redisManager.getTaoBaoGoodsBrief(Long.parseLong(goodsId)); + goodsBrief = redisManager.getTaoBaoGoodsBrief(goodsId); } catch (TaobaoGoodsDownException e) { throw new GoodsEvaluateException(1, "鍟嗗搧宸蹭笅鏋�"); } @@ -2132,7 +2135,7 @@ } Date limitDate = DateUtil.reduceDay(new Date(), 7); - Long goodsId = goodsBrief.getAuctionId(); + String goodsId = goodsBrief.getAuctionId(); List<GoodsEvaluate> evaluateList = goodsEvaluateDao.queryExistLimitTime(Constant.SOURCE_TYPE_TAOBAO, goodsId + "", limitDate); if (evaluateList != null && evaluateList.size() > 0) throw new GoodsEvaluateException(1, "璇ュ晢鍝佸凡瀛樺湪"); @@ -2151,7 +2154,7 @@ // 鍟嗗搧鍥剧墖淇℃伅 int i = 0; - List<ImgInfo> imgList = new ArrayList<ImgInfo>(); + List<ImgInfo> imgList = new ArrayList<>(); for (String img : imgs) { ImgInfo imgInfo = new ImgInfo(); @@ -2186,7 +2189,7 @@ // 鐢熸垚鍙d护 String token = null; try { - TaoBaoLink taoBaoLink = taoBaoLinkManager.getTaoBaoLinkForShare(system, Constant.LINK_TOKEN_VERIFY_UID, goodsBrief.getAuctionId(), "1", null); + TaoBaoLink taoBaoLink = taoBaoLinkManager.getTaoBaoLinkForShare(system, Constant.LINK_TOKEN_VERIFY_UID, goodsBrief.getAuctionId(), Constant.LINK_TOKEN_VERIFY_RELATION_ID, null); token = taoBaoLink.getTaoToken(); } catch (TaoBaoConvertLinkException e) { e.printStackTrace(); @@ -2276,6 +2279,152 @@ goodsEvaluate.setImgList(imgList); goodsEvaluate.setComments(commentsNew); goodsEvaluate.setSystem(system); + goodsEvaluateDao.save(goodsEvaluate); + return result; + } + + @Resource + private DaTaoKeTipOffManager daTaoKeTipOffManager; + + @Override + public int addGoodsEvaluate(DaTaoKeListTopOffDTO dto, ActivityUser user, SystemEnum system) throws GoodsEvaluateException { + if (dto == null || user == null || system == null) { + throw new GoodsEvaluateException(1, "鐩稿叧鍙傛暟涓嶈兘涓虹┖"); + } + + String title = null; + + try { + title = daTaoKeTipOffManager.convertLinkForEvaluateWithEncode(dto, system); + } catch (Exception e) { + throw new GoodsEvaluateException(1, "杞摼鍑洪敊"); + } + + + Date limitDate = DateUtil.reduceDay(new Date(), 7); + + String identifyCode = "dataoke-" + StringUtil.Md5(DaTaoKeTipOffUtil.getRecoomendDesc(dto)); + + GoodsEvaluate evaluate = goodsEvaluateDao.selectExistLimitTime(identifyCode, limitDate); + if (evaluate != null) + throw new GoodsEvaluateException(1, "绾挎姤宸插瓨鍦�"); + + List<String> imgs = new ArrayList<>(); + if (!StringUtil.isNullOrEmpty(dto.getPicUrls())) { + imgs.addAll(Arrays.asList(dto.getPicUrls().split(","))); + } + + GoodsDetailVO goods = null; + + //鑾峰彇鍥剧墖 + if (!StringUtil.isNullOrEmpty( dto.getItemIds())) { + Set<String> imgSet = new HashSet<>(); + imgSet.addAll(imgs); + String id = dto.getItemIds().split(",")[0]; + String source = dto.getPlatform(); + switch (source) { + case "娣樺疂": + try { + TaoBaoGoodsBrief goodsBrief = TaoKeApiUtil.searchGoodsDetail(id); + if (goodsBrief != null && goodsBrief.getImgList() != null) { + GoodsMoneyConfigParamsDTO params = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55", system); + goods = GoodsDetailVOFactory.convertTaoBao(goodsBrief, params); + goods = goodsLijinMnager.loadTBMoneyInfo(system, null, goodsBrief, goods, false); + for (String img : goodsBrief.getImgList()) { + if (!imgSet.contains(img) && imgs.size() < 9) { + imgSet.add(img); + imgs.add(img); + } + } + } + + } catch (TaobaoGoodsDownException e) { + e.printStackTrace(); + } + break; + case "浜笢": { + JDGoods jdGoods = JDApiUtil.queryGoodsDetail(Long.parseLong(id)); + if (jdGoods != null && jdGoods.getImageList() != null) { + GoodsMoneyConfigParamsDTO params = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55", system); + goods = GoodsDetailVOFactory.convertJDGoods(jdGoods, params); + goods = goodsLijinMnager.loadOtherMoneyInfo(system, null, CommonGoodsFactory.create(jdGoods), goods); + for (String img : jdGoods.getImageList()) { + if (!imgSet.contains(img) && imgs.size() < 9) { + imgSet.add(img); + imgs.add(img); + } + } + } + } + break; + case "鎷煎澶�": { + PDDGoodsDetail goodsDetail = PinDuoDuoApiUtil.getGoodsDetail(Long.parseLong(id)); + if (goodsDetail != null && goodsDetail.getGoodsGalleryUrls() != null) { + GoodsMoneyConfigParamsDTO params = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55", system); + goods = GoodsDetailVOFactory.convertPDDGoods(goodsDetail, params); + goods = goodsLijinMnager.loadOtherMoneyInfo(system, null, CommonGoodsFactory.create(goodsDetail), goods); + + for (String img : goodsDetail.getGoodsGalleryUrls()) { + if (!imgSet.contains(img) && imgs.size() < 9) { + imgSet.add(img); + imgs.add(img); + } + } + } + } + break; + default: + throw new GoodsEvaluateException(1, "涓嶆敮鎸佺殑source锛�" + source); + } + } + + + // 鍟嗗搧鍥剧墖淇℃伅 + List<ImgInfo> imgList = new ArrayList<>(); + for (String img : imgs) { + ImgInfo imgInfo = new ImgInfo(); + imgInfo.setH(1); + imgInfo.setW(1); + imgInfo.setLarge(false); + imgInfo.setUrl(img); + imgInfo.setUrlHD(img); + imgInfo.setType(ImgEnum.img); + imgList.add(imgInfo); + } + + // 涓�琛屾樉绀哄灏戜釜鍥剧墖 + int lineNum = 3; + int result = 0; + int zeroPoint = 0; + Date startTime = new Date(); + + + GoodsEvaluate goodsEvaluate = new GoodsEvaluate(); + goodsEvaluate.setId(UUID.randomUUID().toString().replace("-", "")); + goodsEvaluate.setUser(user); + goodsEvaluate.setTitle(title); + goodsEvaluate.setState(1); + goodsEvaluate.setZeroPoint(zeroPoint); + goodsEvaluate.setDynamicType(1); + goodsEvaluate.setType(EvaluateEnum.single); + goodsEvaluate.setShareNum((int) (Math.random() * 5000) + 1000); + goodsEvaluate.setShareNumReal(0); + goodsEvaluate.setWeight(0.0); + goodsEvaluate.setStartTime(startTime); + goodsEvaluate.setEndTime(DateUtil.plusDayDate(3, startTime)); + goodsEvaluate.setPublishTime(new Date()); + goodsEvaluate.setCreateTime(new Date()); + goodsEvaluate.setUpdateTime(new Date()); + //绾挎姤涓嶆樉绀哄晢鍝� + if (goods != null && goods.getGoodsType() == Constant.SOURCE_TYPE_TAOBAO) { + goods.setCreatetime(null); + goodsEvaluate.setGoods(goods); + } + goodsEvaluate.setLineNum(lineNum); + goodsEvaluate.setImgList(imgList); + goodsEvaluate.setComments(null); + goodsEvaluate.setSystem(system); + goodsEvaluate.setIdentifyCode(identifyCode); goodsEvaluateDao.save(goodsEvaluate); return result; } @@ -2558,7 +2707,7 @@ } for (SystemEnum system : SystemEnum.values()) { List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_TAOBAO, - goods.getAuctionId() + "", system); + goods.getAuctionId(), system); if (queryExist == null || queryExist.size() == 0) { continue; } @@ -2630,6 +2779,25 @@ } @Override + public void updateDYGoods(DYGoodsDetail goods) { + if (goods == null) { + return; + } + for (SystemEnum system : SystemEnum.values()) { + List<GoodsEvaluate> queryExist = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_DY, + goods.getProduct_id()+"", system); + if (queryExist == null || queryExist.size() == 0) { + continue; + } + + GoodsMoneyConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55", system); + paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate(system)); + GoodsDetailVO goodsNew = GoodsDetailVOFactory.convertDYGoods(goods, paramsDTO); + updateGoods(queryExist, goodsNew); + } + } + + @Override public void updateSuningGoods(SuningGoodsInfo goods) { if (goods == null) { return; -- Gitblit v1.8.0