From fdd50bd7ca375743475f5f799564dffdd92fa491 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期一, 07 六月 2021 18:13:42 +0800 Subject: [PATCH] 大淘客线报单 --- fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java | 226 ++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 185 insertions(+), 41 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..757da1c 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.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,50 @@ 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.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 +126,9 @@ @Resource private PIDManager pidManager; + + @Resource + private GoodsLijinMnager goodsLijinMnager; @Override public void switchState(String id) throws GoodsEvaluateException { @@ -2280,6 +2281,149 @@ 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)) + "-" + dto.getUpdateTime().getTime(); + + GoodsEvaluate evaluate = goodsEvaluateDao.selectExistLimitTime(identifyCode, limitDate); + if (evaluate != null) + throw new GoodsEvaluateException(1, "绾挎姤宸插瓨鍦�"); + + List<String> imgs = new ArrayList<>(); + if (dto.getImageList() != null && dto.getImageList().size() > 0) { + imgs.addAll(dto.getImageList()); + } + + GoodsDetailVO goods = null; + + //鑾峰彇鍥剧墖 + if (dto.getIdList() != null && dto.getIdList().size() > 0) { + Set<String> imgSet = new HashSet<>(); + imgSet.addAll(imgs); + String id = dto.getIdList().get(0); + String source = dto.getSource(); + switch (source) { + case "tmall": + case "taobao": + try { + TaoBaoGoodsBrief goodsBrief = TaoKeApiUtil.getSimpleGoodsInfo(Long.parseLong(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); + 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 "jd": { + 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 "pdd": { + 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()); + goodsEvaluate.setGoods(goods); + goodsEvaluate.setLineNum(lineNum); + goodsEvaluate.setImgList(imgList); + goodsEvaluate.setComments(null); + goodsEvaluate.setSystem(system); + goodsEvaluate.setIdentifyCode(identifyCode); + goodsEvaluateDao.save(goodsEvaluate); + return result; + } + @Override public void addGoodsEvaluateByDaTaoKe(SystemEnum system) { List<Long> listId = null; -- Gitblit v1.8.0