| | |
| | | import javax.imageio.ImageIO; |
| | | |
| | | 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 com.yeshi.fanli.dto.jd.JDCouponInfo; |
| | | import com.yeshi.fanli.dto.pdd.PDDGoodsDetail; |
| | | import com.yeshi.fanli.entity.bus.activity.ActivityUser; |
| | | import com.yeshi.fanli.entity.bus.clazz.GoodsClass; |
| | | import com.yeshi.fanli.entity.dynamic.CommentInfo; |
| | | import com.yeshi.fanli.entity.dynamic.CommentInfo.CommentInfoEnum; |
| | | import com.yeshi.fanli.entity.dynamic.DynamicInfo; |
| | | import com.yeshi.fanli.entity.dynamic.GoodsEvaluate; |
| | | import com.yeshi.fanli.entity.dynamic.GoodsEvaluate.EvaluateEnum; |
| | | import com.yeshi.fanli.entity.dynamic.GoodsPicture; |
| | | import com.yeshi.fanli.entity.dynamic.ImgInfo; |
| | | import com.yeshi.fanli.entity.dynamic.ImgInfo.ImgEnum; |
| | | import com.yeshi.fanli.entity.dynamic.SimpleGoods; |
| | |
| | | import com.yeshi.fanli.service.inter.config.ConfigService; |
| | | import com.yeshi.fanli.service.inter.dynamic.GoodsEvaluateService; |
| | | 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.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 com.yeshi.fanli.util.RedisManager; |
| | | import com.yeshi.fanli.util.StringUtil; |
| | | import com.yeshi.fanli.util.TimeUtil; |
| | | import com.yeshi.fanli.util.cache.JDGoodsCacheUtil; |
| | | import com.yeshi.fanli.util.cache.PinDuoDuoCacheUtil; |
| | | import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory; |
| | |
| | | import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil; |
| | | 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.fanli.vo.msg.ClientTextStyleVO; |
| | |
| | | |
| | | @Resource |
| | | private HongBaoManageService hongBaoManageService; |
| | | |
| | | @Resource |
| | | private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService; |
| | | |
| | | @Resource(name = "taskExecutor") |
| | | private TaskExecutor executor; |
| | |
| | | |
| | | @Resource |
| | | private ConvertLinkManager convertLinkManager; |
| | | |
| | | |
| | | @Resource |
| | | private DaTaoKeGoodsDetailV2Service daTaoKeGoodsDetailV2Service; |
| | | |
| | | |
| | | |
| | | @Override |
| | | public void switchState(String id) throws GoodsEvaluateException { |
| | | if (id == null) { |
| | | throw new GoodsEvaluateException(1, "请传递正确参数"); |
| | | } |
| | | |
| | | GoodsEvaluate resultObj = goodsEvaluateDao.getById(id); |
| | | if (resultObj == null) { |
| | | throw new GoodsEvaluateException(1, "此内容已不存在"); |
| | | } |
| | | |
| | | Integer state = resultObj.getState(); |
| | | if (state == null || state == 0) { |
| | | state = 1; |
| | | } else { |
| | | state = 0; |
| | | } |
| | | goodsEvaluateDao.updateSatate(id, state); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public String saveHead(MultipartFile file, GoodsEvaluate record) throws GoodsEvaluateException { |
| | | Integer state = record.getState(); |
| | |
| | | if (record.getStartTime() != null && record.getEndTime().getTime() <= record.getStartTime().getTime()) |
| | | throw new GoodsEvaluateException(1, "截止时间必须大于开始时间"); |
| | | } else { |
| | | record.setEndTime(DateUtil.plusDayDate(3, new Date())); |
| | | if (record.getStartTime() == null) { |
| | | record.setEndTime(DateUtil.plusDayDate(3, new Date())); |
| | | } else { |
| | | record.setEndTime(DateUtil.plusDayDate(3, record.getStartTime())); |
| | | } |
| | | } |
| | | |
| | | Integer dynamicType = record.getDynamicType(); |
| | |
| | | record.setId(id); |
| | | record.setShareNumReal(0); |
| | | record.setCreateTime(new Date()); |
| | | record.setUpdateTime(new Date()); |
| | | goodsEvaluateDao.save(record); |
| | | } else { |
| | | GoodsEvaluate resultObj = goodsEvaluateDao.getById(id); |
| | |
| | | resultObj.setStartTime(record.getStartTime()); |
| | | resultObj.setEndTime(record.getEndTime()); |
| | | resultObj.setTitle(tilte); |
| | | resultObj.setUpdateTime(new Date()); |
| | | goodsEvaluateDao.save(resultObj); |
| | | } |
| | | return id; |
| | |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | private ImgInfo uploadOriginalPicture(MultipartFile file) { |
| | | try { |
| | | InputStream inputStream = file.getInputStream(); |
| | | String contentType = file.getContentType(); |
| | | String type = contentType.substring(contentType.indexOf("/") + 1); |
| | | String filePath = FilePathEnum.goodsEvaluate.getPath() + UUID.randomUUID().toString().replace("-", "") + "."+ type; |
| | | |
| | | BufferedImage sourceImg = ImageIO.read(inputStream); |
| | | ImgInfo info = new ImgInfo(); |
| | | int width = sourceImg.getWidth(); |
| | | int height = sourceImg.getHeight(); |
| | | |
| | | String picLink = COSManager.getInstance().uploadFile(file.getInputStream(), filePath).getUrl(); |
| | | |
| | | info.setH(height); |
| | | info.setW(width); |
| | | info.setUrl(picLink); |
| | | return info; |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | private String uploadPicture(File file, String contentType) throws Exception { |
| | | InputStream inputStream = new FileInputStream(file); |
| | |
| | | } |
| | | |
| | | // 编辑图片 |
| | | List<String> listpic = null; |
| | | List<String> listpic = new ArrayList<>(); |
| | | if (!StringUtil.isNullOrEmpty(picUrls)) { |
| | | String[] pics = picUrls.split(","); |
| | | if (pics != null) { |
| | | listpic = new ArrayList<>(); |
| | | for (int i = 0; i < pics.length; i++) { |
| | | String picLink = pics[i]; |
| | | if (fileRequest != null) { |
| | | MultipartFile file = fileRequest.getFile("file" + i); |
| | | if (file != null) { |
| | | picLink = uploadPicture(file); |
| | | } |
| | | |
| | | } |
| | | if (picLink.startsWith("http")) { |
| | | listpic.add(picLink); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 上传文件替换 |
| | | if (fileRequest != null) { |
| | | for (int i = 0; i < 9; i++) { |
| | | MultipartFile file = fileRequest.getFile("file" + i); |
| | | if (file != null) { |
| | | String picLink = uploadPicture(file); |
| | | if (i < listpic.size()) { |
| | | listpic.set(i, picLink); |
| | | } else { |
| | | listpic.add(picLink); |
| | | } |
| | | } |
| | |
| | | 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 = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55"); |
| | | params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate()); |
| | | if (goodsType == Constant.SOURCE_TYPE_TAOBAO) { |
| | | try { |
| | | TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(goodsId); |
| | |
| | | lineNum = 1; |
| | | } else if (totalImg == 3) { |
| | | lineNum = 3; |
| | | } else if (totalImg <= 4) { |
| | | } else if (totalImg == 2 || totalImg == 4) { |
| | | lineNum = 2; |
| | | } else { |
| | | lineNum = 3; |
| | |
| | | String jumpLink = JDApiUtil.convertLinkWithSubUnionId(materialId, couponUrl, |
| | | JDApiUtil.POSITION_SHARE + "", "1"); |
| | | String template = configService.get(ConfigKeyEnum.quickShareJDCommentText.getKey()); |
| | | if (jumpLink == null) { |
| | | throw new GoodsEvaluateException(1, "该商品转链失败"); |
| | | } |
| | | commentText = template.replace("[链接]", jumpLink); |
| | | } else if (goodsType == Constant.SOURCE_TYPE_PDD) { |
| | | String jumpLink = PinDuoDuoApiUtil.getPromotionUrl(goodsId, PinDuoDuoApiUtil.PID_SHARE + "", "1"); |
| | | if (jumpLink == null) { |
| | | throw new GoodsEvaluateException(1, "该商品转链失败"); |
| | | } |
| | | String template = configService.get(ConfigKeyEnum.quickSharePDDCommentText.getKey()); |
| | | commentText = template.replace("[链接]", jumpLink); |
| | | } |
| | | |
| | | commentText = commentText.replace("[原价]", goodsDetailVO.getZkPrice().toString()); |
| | | if (!goodsDetailVO.isHasCoupon()) { |
| | | commentText = commentText.replace("领券抢购", "抢购"); |
| | | commentText = commentText.replace("【券后价】[券后价]元", ""); |
| | | } else { |
| | | commentText = commentText.replace("[券后价]", goodsDetailVO.getCouponPrice().toString()); |
| | | } |
| | | |
| | | commentText = commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", |
| | | "\r\n"); |
| | | // commentText = commentText.replace("[原价]", |
| | | // MoneyBigDecimalUtil.getWithNoZera(goodsDetailVO.getZkPrice())+""); |
| | | // if (!goodsDetailVO.isHasCoupon()) { |
| | | // commentText = commentText.replace("领券抢购", "抢购"); |
| | | // commentText = commentText.replace("【券后价】[券后价]元", ""); |
| | | // } else { |
| | | // commentText = commentText.replace("[券后价]", |
| | | // MoneyBigDecimalUtil.getWithNoZera(goodsDetailVO.getCouponPrice())+""); |
| | | // } |
| | | // |
| | | // commentText = commentText.replace("\r\n\r\n", |
| | | // "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", |
| | | // "\r\n"); |
| | | |
| | | CommentInfo commentInfo = new CommentInfo(); |
| | | commentInfo.setId(UUID.randomUUID().toString().replace("-", "")); |
| | | commentInfo.setContent(commentText); |
| | | commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon); |
| | | commentInfo.setNeedSpin(true); |
| | | commentsNew.add(commentInfo); |
| | | resultObj.setComments(commentsNew); |
| | | } |
| | | resultObj.setUpdateTime(new Date()); |
| | | goodsEvaluateDao.save(resultObj); |
| | | |
| | | // 删除图片 |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | return commentText; |
| | | } |
| | | |
| | |
| | | |
| | | 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 = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55"); |
| | | params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate()); |
| | | if (goodsType == Constant.SOURCE_TYPE_TAOBAO) { |
| | | try { |
| | | TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(goodsId); |
| | |
| | | } |
| | | |
| | | String picUrl = goodsDetailVO.getPicUrl(); |
| | | |
| | | if (fileRequest != null) { |
| | | MultipartFile file = fileRequest.getFile("file" + i); |
| | | if (file != null) { |
| | |
| | | lineNum = 1; |
| | | } else if (totalImg == 3) { |
| | | lineNum = 3; |
| | | } else if (totalImg <= 4) { |
| | | } else if (totalImg == 2 || totalImg == 4) { |
| | | lineNum = 2; |
| | | } else { |
| | | lineNum = 3; |
| | |
| | | if (StringUtil.isNullOrEmpty(commentInfo.getId())) { |
| | | commentInfo.setId(UUID.randomUUID().toString().replace("-", "")); |
| | | } |
| | | |
| | | |
| | | commentInfo.setNeedSpin(true); |
| | | commentInfo.setType(commentInfo.getTags()); |
| | | commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon); |
| | | newList.add(commentInfo); |
| | |
| | | } |
| | | |
| | | resultObj.setComments(comments); |
| | | resultObj.setUpdateTime(new Date()); |
| | | goodsEvaluateDao.save(resultObj); |
| | | } |
| | | |
| | | @Override |
| | | public void saveGoodsCoupon(String pid, String content) throws GoodsEvaluateException, Exception { |
| | | if (StringUtil.isNullOrEmpty(pid)) { |
| | | throw new GoodsEvaluateException(1, "请保存第一部分信息"); |
| | | } |
| | | |
| | | GoodsEvaluate resultObj = goodsEvaluateDao.getById(pid); |
| | | if (resultObj == null) |
| | | throw new GoodsEvaluateException(1, "第一部分信息缺失"); |
| | | |
| | | CommentInfo goodsCoupon = null; |
| | | CommentInfo currencyCoupon = null; |
| | | List<CommentInfo> oldComments = resultObj.getComments(); |
| | | if (oldComments != null) { |
| | | for (CommentInfo info : oldComments) { |
| | | if (CommentInfoEnum.goodsCoupon == info.getTypeEnum()) { |
| | | goodsCoupon = info; |
| | | } else if (CommentInfoEnum.currencyCoupon == info.getTypeEnum()) { |
| | | currencyCoupon = info; |
| | | } |
| | | } |
| | | } |
| | | |
| | | List<CommentInfo> comments = new ArrayList<>(); |
| | | if (!StringUtil.isNullOrEmpty(content)) { |
| | | |
| | | if (!StringUtil.isNullOrEmpty(content)) { |
| | | try { |
| | | convertLinkManager.convertLinkFromText(content, 1L, true); |
| | | } catch (Exception e) { |
| | | throw new GoodsEvaluateException(1, "不包含可转链的口令与链接"); |
| | | } |
| | | } |
| | | |
| | | CommentInfo commentInfo = new CommentInfo(); |
| | | if (goodsCoupon != null) { |
| | | commentInfo.setId(goodsCoupon.getId()); |
| | | } else { |
| | | commentInfo.setId(UUID.randomUUID().toString().replace("-", "")); |
| | | } |
| | | commentInfo.setContent(content); |
| | | commentInfo.setType(commentInfo.getTags()); |
| | | commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon); |
| | | comments.add(commentInfo); |
| | | } |
| | | |
| | | if (currencyCoupon != null) { |
| | | comments.add(currencyCoupon); |
| | | } |
| | | |
| | | resultObj.setComments(comments); |
| | | goodsEvaluateDao.save(resultObj); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public void saveCurrencyCoupon(String pid, int kind, CommentInfo commentInfo) |
| | | throws GoodsEvaluateException, Exception { |
| | |
| | | throw new GoodsEvaluateException(1, "请保存第一部分信息"); |
| | | } |
| | | |
| | | if (StringUtil.isNullOrEmpty(commentInfo.getCoupon())) { |
| | | throw new GoodsEvaluateException(1, "券面额不能为空"); |
| | | } |
| | | |
| | | if (StringUtil.isNullOrEmpty(commentInfo.getTagDesc())) { |
| | | throw new GoodsEvaluateException(1, "描述语不能为空"); |
| | | } |
| | | |
| | | String tagUrl = commentInfo.getTagUrl(); |
| | | String content = commentInfo.getContent(); |
| | | if (StringUtil.isNullOrEmpty(tagUrl) && StringUtil.isNullOrEmpty(content)) { |
| | | throw new GoodsEvaluateException(1, "评论语和链接不能同时为空"); |
| | | } |
| | | |
| | | String endTime = commentInfo.getEndTime(); |
| | | if (!StringUtil.isNullOrEmpty(endTime)) { |
| | | try { |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); |
| | | sdf.parse(endTime); |
| | | } catch (Exception e) { |
| | | throw new GoodsEvaluateException(1, "请填写正确的时间格式:2020-03-05"); |
| | | GoodsEvaluate resultObj = goodsEvaluateDao.getById(pid); |
| | | if (resultObj == null) |
| | | throw new GoodsEvaluateException(1, "第一部分信息缺失"); |
| | | |
| | | if (EvaluateEnum.activity != resultObj.getType()) { |
| | | if (StringUtil.isNullOrEmpty(commentInfo.getCoupon())) { |
| | | throw new GoodsEvaluateException(1, "券面额不能为空"); |
| | | } |
| | | } else { |
| | | throw new GoodsEvaluateException(1, "请填写券截止时间"); |
| | | |
| | | if (StringUtil.isNullOrEmpty(commentInfo.getTagDesc())) { |
| | | throw new GoodsEvaluateException(1, "描述语不能为空"); |
| | | } |
| | | |
| | | String tagUrl = commentInfo.getTagUrl(); |
| | | String content = commentInfo.getContent(); |
| | | if (StringUtil.isNullOrEmpty(tagUrl) && StringUtil.isNullOrEmpty(content)) { |
| | | throw new GoodsEvaluateException(1, "评论语和链接不能同时为空"); |
| | | } |
| | | |
| | | String endTime = commentInfo.getEndTime(); |
| | | if (!StringUtil.isNullOrEmpty(endTime)) { |
| | | try { |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); |
| | | sdf.parse(endTime); |
| | | } catch (Exception e) { |
| | | throw new GoodsEvaluateException(1, "请填写正确的时间格式:2020-03-05"); |
| | | } |
| | | } else { |
| | | throw new GoodsEvaluateException(1, "请填写券截止时间"); |
| | | } |
| | | } |
| | | |
| | | if (!StringUtil.isNullOrEmpty(content) && kind != 3) { // 活动不验证 |
| | | if (commentInfo.getNeedSpin() == null) { |
| | | commentInfo.setNeedSpin(false); |
| | | } |
| | | |
| | | String content = commentInfo.getContent(); |
| | | if (!StringUtil.isNullOrEmpty(content) && commentInfo.getNeedSpin()) { |
| | | try { |
| | | convertLinkManager.convertLinkFromText(content, Constant.LINK_TOKEN_VERIFY_UID, true); |
| | | } catch (ConvertLinkExceptionException e) { |
| | |
| | | } |
| | | } |
| | | |
| | | GoodsEvaluate resultObj = goodsEvaluateDao.getById(pid); |
| | | if (resultObj == null) |
| | | throw new GoodsEvaluateException(1, "第一部分信息缺失"); |
| | | |
| | | List<CommentInfo> comments = new ArrayList<>(); |
| | | CommentInfo currencyCoupon = null; |
| | |
| | | } |
| | | |
| | | @Override |
| | | public void saveActivityPic(String pid, ImgInfo imgInfo, MultipartHttpServletRequest fileRequest) |
| | | public void saveActivityPic(String pid, ImgInfo imgInfo, String picUrls, MultipartHttpServletRequest fileRequest) |
| | | throws GoodsEvaluateException, Exception { |
| | | if (StringUtil.isNullOrEmpty(pid)) { |
| | | throw new GoodsEvaluateException(1, "请保存第一部分信息"); |
| | |
| | | GoodsEvaluate resultObj = goodsEvaluateDao.getById(pid); |
| | | if (resultObj == null) |
| | | throw new GoodsEvaluateException(1, "第一部分信息缺失"); |
| | | |
| | | if (imgInfo == null || StringUtil.isNullOrEmpty(imgInfo.getActivityUrl())) { |
| | | throw new GoodsEvaluateException(1, "活动链接不能为空"); |
| | | } |
| | | |
| | | String videoPic = null; |
| | | String activityPic = null; |
| | | ImgInfo imgVideo = null; |
| | | ImgInfo imgactivity = null; |
| | | List<String> listDel = new ArrayList<String>(); |
| | | List<ImgInfo> listOld = new ArrayList<ImgInfo>(); |
| | | List<ImgInfo> resultList = resultObj.getImgList(); |
| | | if (resultList != null && resultList.size() > 0) { |
| | | for (ImgInfo info : resultList) { |
| | | if (info.getType() == ImgEnum.activity) { |
| | | activityPic = info.getActivityPic(); |
| | | imgactivity = info; |
| | | } else { |
| | | if (info.getType() == ImgEnum.video) { |
| | | imgVideo = info; |
| | | videoPic = info.getUrl(); |
| | | } else { |
| | | listOld.add(info); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 视频部分 |
| | | if (fileRequest != null) { |
| | | MultipartFile filevideo = fileRequest.getFile("filevideo"); |
| | | if (filevideo != null) { |
| | | if (StringUtil.isNullOrEmpty(imgInfo.getVideoUrl())) { |
| | | throw new GoodsEvaluateException(1, "视频链接不能为空"); |
| | | } |
| | | ImgInfo info = uploadVideoPicture(filevideo); |
| | | if (info == null) |
| | | throw new GoodsEvaluateException(2, "视频图片上传失败"); |
| | | if (imgVideo != null) { |
| | | String url = imgVideo.getUrl(); |
| | | if (!StringUtil.isNullOrEmpty(url)) { |
| | | listDel.add(url); |
| | | } |
| | | imgVideo.setUrl(info.getUrl()); |
| | | imgVideo.setUrlHD(info.getUrl()); |
| | | } else { |
| | | imgVideo = new ImgInfo(); |
| | | imgVideo.setId(UUID.randomUUID().toString().replace("-", "")); |
| | | imgVideo.setLarge(true); |
| | | imgVideo.setPid(pid); |
| | | imgVideo.setUrl(info.getUrl()); |
| | | imgVideo.setUrlHD(info.getUrl()); |
| | | imgVideo.setVideoUrl(imgInfo.getVideoUrl()); |
| | | imgVideo.setType(ImgEnum.video); |
| | | } |
| | | imgVideo.setW(info.getW()); |
| | | imgVideo.setH(info.getH()); |
| | | } |
| | | } |
| | | |
| | | |
| | | List<ImgInfo> listImg = new ArrayList<ImgInfo>(); |
| | | if (imgVideo != null) { |
| | | if (!StringUtil.isNullOrEmpty(imgInfo.getVideoUrl())) { |
| | | if (imgVideo != null && StringUtil.isNullOrEmpty(imgVideo.getUrl())) { |
| | | throw new GoodsEvaluateException(1, "视频封面图不能为空"); |
| | | } |
| | | imgVideo.setVideoUrl(imgInfo.getVideoUrl()); |
| | | listImg.add(imgVideo); |
| | | } else { |
| | | String url = imgVideo.getUrl(); |
| | | if (!StringUtil.isNullOrEmpty(url)) { |
| | | listDel.add(url); |
| | | } |
| | | } |
| | | } |
| | | |
| | | String activityUrl = imgInfo.getActivityUrl(); |
| | | // 编辑图片 |
| | | List<ImgInfo> tempList = new ArrayList<ImgInfo>(); |
| | | if (!StringUtil.isNullOrEmpty(picUrls)) { |
| | | String[] pics = picUrls.split(","); |
| | | if (pics != null) { |
| | | for (int i = 0; i < pics.length; i++) { |
| | | String picLink = pics[i]; |
| | | if (picLink.startsWith("http")) { |
| | | if (listOld != null) { |
| | | for (ImgInfo info: listOld) { |
| | | if (info.getUrl().equals(picLink)) { |
| | | info.setActivityUrl(activityUrl); |
| | | tempList.add(info); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | int width = 0; |
| | | int height = 0; |
| | | int width2 = 0; |
| | | int height2 = 0; |
| | | List<ImgInfo> listImg = new ArrayList<ImgInfo>(); |
| | | |
| | | // 上传文件替换 |
| | | if (fileRequest != null) { |
| | | MultipartFile filevideo = fileRequest.getFile("filevideo"); |
| | | if (filevideo != null) { |
| | | removePicture(videoPic); |
| | | |
| | | ImgInfo info = uploadVideoPicture(filevideo); |
| | | if (info == null) |
| | | throw new GoodsEvaluateException(2, "视频图片上传失败"); |
| | | videoPic = info.getUrl(); |
| | | width=info.getW(); |
| | | height=info.getH(); |
| | | for (int i = 0; i < 9; i++) { |
| | | MultipartFile file = fileRequest.getFile("file" + i); |
| | | if (file != null) { |
| | | ImgInfo info = uploadOriginalPicture(file); |
| | | ImgInfo imgInfo0 = new ImgInfo(); |
| | | imgInfo0.setId(UUID.randomUUID().toString().replace("-", "")); |
| | | imgInfo0.setLarge(false); |
| | | imgInfo0.setPid(pid); |
| | | imgInfo0.setUrl(info.getUrl()); |
| | | imgInfo0.setUrlHD(info.getUrl()); |
| | | imgInfo0.setType(ImgEnum.activity); |
| | | imgInfo0.setW(info.getW()); |
| | | imgInfo0.setH(info.getH()); |
| | | imgInfo0.setActivityUrl(activityUrl); |
| | | if (i < tempList.size()) { |
| | | tempList.set(i, imgInfo0); |
| | | } else { |
| | | tempList.add(imgInfo0); |
| | | } |
| | | } |
| | | } |
| | | |
| | | MultipartFile activityfile = fileRequest.getFile("activityfile"); |
| | | if (activityfile != null) { |
| | | removePicture(activityPic); |
| | | InputStream inputStream = activityfile.getInputStream(); |
| | | BufferedImage sourceImg = ImageIO.read(inputStream); |
| | | width2 = sourceImg.getWidth(); |
| | | height2 = sourceImg.getHeight(); |
| | | String picLink = uploadPicture(activityfile); |
| | | activityPic = picLink; |
| | | } |
| | | } |
| | | |
| | | if (!StringUtil.isNullOrEmpty(videoPic) || !StringUtil.isNullOrEmpty(imgInfo.getVideoUrl())) { |
| | | if (imgVideo != null) { |
| | | imgVideo.setUrl(videoPic); |
| | | imgVideo.setUrlHD(videoPic); |
| | | imgVideo.setVideoUrl(imgInfo.getVideoUrl()); |
| | | } else { |
| | | imgVideo = new ImgInfo(); |
| | | imgVideo.setId(UUID.randomUUID().toString().replace("-", "")); |
| | | imgVideo.setLarge(true); |
| | | imgVideo.setPid(pid); |
| | | imgVideo.setUrl(videoPic); |
| | | imgVideo.setUrlHD(videoPic); |
| | | imgVideo.setVideoUrl(imgInfo.getVideoUrl()); |
| | | imgVideo.setType(ImgEnum.video); |
| | | } |
| | | if (width > 0) { |
| | | imgVideo.setW(width); |
| | | imgVideo.setH(height); |
| | | } else { |
| | | imgVideo.setW(imgVideo.getW()); |
| | | imgVideo.setH(imgVideo.getH()); |
| | | } |
| | | listImg.add(imgVideo); |
| | | } |
| | | |
| | | int totalImg = 0; |
| | | if (!StringUtil.isNullOrEmpty(activityPic) || !StringUtil.isNullOrEmpty(imgInfo.getActivityUrl())) { |
| | | if (imgactivity != null) { |
| | | imgactivity.setUrl(activityPic); |
| | | imgactivity.setUrlHD(activityPic); |
| | | imgactivity.setActivityUrl(imgInfo.getActivityUrl()); |
| | | } else { |
| | | imgactivity = new ImgInfo(); |
| | | imgactivity.setId(UUID.randomUUID().toString().replace("-", "")); |
| | | imgactivity.setLarge(true); |
| | | imgactivity.setPid(pid); |
| | | imgactivity.setUrl(activityPic); |
| | | imgactivity.setUrlHD(activityPic); |
| | | imgactivity.setActivityUrl(imgInfo.getActivityUrl()); |
| | | imgactivity.setType(ImgEnum.activity); |
| | | } |
| | | if (width2 > 0) { |
| | | imgactivity.setW(width2); |
| | | imgactivity.setH(height2); |
| | | } else { |
| | | imgactivity.setW(imgactivity.getW()); |
| | | imgactivity.setH(imgactivity.getH()); |
| | | } |
| | | listImg.add(imgactivity); |
| | | totalImg ++; |
| | | } |
| | | |
| | | |
| | | int lineNum = 0; |
| | | int totalImg = tempList.size(); |
| | | if (totalImg > 0) { |
| | | if (totalImg == 1) { |
| | | lineNum = 1; |
| | | } else if (totalImg == 3) { |
| | | lineNum = 3; |
| | | } else if (totalImg <= 4) { |
| | | } else if (totalImg == 2 || totalImg == 4) { |
| | | lineNum = 2; |
| | | } else { |
| | | lineNum = 3; |
| | | } |
| | | } |
| | | |
| | | |
| | | // 一张图显示为大图 |
| | | if (tempList.size() == 1) { |
| | | tempList.get(0).setLarge(true); |
| | | } |
| | | |
| | | if (tempList.size() > 0) { |
| | | listImg.addAll(tempList); |
| | | } |
| | | |
| | | // 清理老图片 |
| | | if (listOld != null && listOld.size() > 0) { |
| | | for (ImgInfo infoOld: listOld) { |
| | | boolean del = true; |
| | | String oldPic = infoOld.getUrl(); |
| | | for (ImgInfo info : listImg) { |
| | | if (info.getUrl().equals(oldPic)) { |
| | | del = false; |
| | | } |
| | | } |
| | | if (del) |
| | | listDel.add(infoOld.getUrl()); |
| | | } |
| | | } |
| | | |
| | | resultObj.setJumpLink(activityUrl); |
| | | resultObj.setLineNum(lineNum); |
| | | resultObj.setImgList(listImg); |
| | | goodsEvaluateDao.save(resultObj); |
| | | |
| | | // 删除图片 |
| | | if (listDel.size() > 0) { |
| | | for (String url : listDel) { |
| | | if (url.contains(FilePathEnum.goodsEvaluate.getPath())) { |
| | | removePicture(url); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | @Override |
| | |
| | | listImg.add(imgActivity); |
| | | } |
| | | |
| | | int totalImg = 0; |
| | | // 编辑图片 |
| | | List<String> listpic = new ArrayList<>(); |
| | | if (!StringUtil.isNullOrEmpty(picUrls)) { |
| | | String[] pics = picUrls.split(","); |
| | | if (pics != null) { |
| | | for (int i = 0; i < pics.length; i++) { |
| | | String picLink = pics[i]; |
| | | if (fileRequest != null) { |
| | | MultipartFile file = fileRequest.getFile("file" + i); |
| | | if (file != null) { |
| | | picLink = uploadPicture(file); |
| | | |
| | | ImgInfo imgInfo0 = new ImgInfo(); |
| | | imgInfo0.setId(UUID.randomUUID().toString().replace("-", "")); |
| | | imgInfo0.setLarge(false); |
| | | imgInfo0.setPid(pid); |
| | | imgInfo0.setUrl(picLink); |
| | | imgInfo0.setUrlHD(picLink); |
| | | imgInfo0.setType(ImgEnum.img); |
| | | imgInfo0.setW(1); |
| | | imgInfo0.setH(1); |
| | | listImg.add(imgInfo0); |
| | | totalImg ++; |
| | | continue; |
| | | } |
| | | } |
| | | |
| | | if (picLink.startsWith("http")) { |
| | | if (listOldImgInfo != null) { |
| | | for (ImgInfo imgInfo : listOldImgInfo) { |
| | | String url = imgInfo.getUrl(); |
| | | if (picLink.equals(url)) { |
| | | listImg.add(imgInfo); |
| | | totalImg ++; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | listpic.add(picLink); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 上传文件替换 |
| | | if (fileRequest != null) { |
| | | for (int i = 0; i < 9; i++) { |
| | | MultipartFile file = fileRequest.getFile("file" + i); |
| | | if (file != null) { |
| | | String picLink = uploadPicture(file); |
| | | if (i < listpic.size()) { |
| | | listpic.set(i, picLink); |
| | | } else { |
| | | listpic.add(picLink); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | int totalImg = 0; |
| | | for (String pic : listpic) { |
| | | ImgInfo imgInfo0 = new ImgInfo(); |
| | | imgInfo0.setId(UUID.randomUUID().toString().replace("-", "")); |
| | | imgInfo0.setLarge(false); |
| | | imgInfo0.setPid(pid); |
| | | imgInfo0.setUrl(pic); |
| | | imgInfo0.setUrlHD(pic); |
| | | imgInfo0.setType(ImgEnum.img); |
| | | imgInfo0.setW(1); |
| | | imgInfo0.setH(1); |
| | | listImg.add(imgInfo0); |
| | | totalImg++; |
| | | } |
| | | |
| | | // 清理老图片 |
| | | if (listOld != null && listOld.size() > 0) { |
| | | for (int j = 0; j < listOld.size(); j++) { |
| | | boolean del = true; |
| | |
| | | listDel.add(listOld.get(j)); |
| | | } |
| | | } |
| | | |
| | | |
| | | int lineNum = 0; |
| | | if (totalImg > 0) { |
| | | if (totalImg == 1) { |
| | | lineNum = 1; |
| | | } else if (totalImg == 3) { |
| | | lineNum = 3; |
| | | } else if (totalImg <= 4) { |
| | | } else if (totalImg == 2 || totalImg == 4) { |
| | | lineNum = 2; |
| | | } else { |
| | | lineNum = 3; |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<GoodsEvaluate> query(int start, int count, String key, Integer state, int dynamicType) { |
| | | return goodsEvaluateDao.query(start, count, key, state, dynamicType); |
| | | public List<GoodsEvaluate> query(int start, int count, String key, Integer state, int dynamicType, String typeEnum) { |
| | | return goodsEvaluateDao.query(start, count, key, state, dynamicType, typeEnum); |
| | | } |
| | | |
| | | @Override |
| | | public long count(String key, Integer state, int dynamicType) { |
| | | return goodsEvaluateDao.count(key, state, dynamicType); |
| | | public long count(String key, Integer state, int dynamicType, String typeEnum) { |
| | | return goodsEvaluateDao.count(key, state, dynamicType, typeEnum); |
| | | } |
| | | |
| | | @Override |
| | | public void addRanDomShareCount() { |
| | | // 发圈 |
| | | try { |
| | | List<GoodsEvaluate> list = goodsEvaluateDao.queryValid(0, Integer.MAX_VALUE, 1); |
| | | if (list != null) { |
| | | for (GoodsEvaluate goodsEvaluate : list) { |
| | | Integer shareNum = goodsEvaluate.getShareNum(); |
| | | if (shareNum == null) { |
| | | shareNum = 0; |
| | | } |
| | | goodsEvaluate.setShareNum(shareNum + (int) (Math.random() * 100) + 10); |
| | | goodsEvaluateDao.save(goodsEvaluate); |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | LogHelper.errorDetailInfo(e); |
| | | } |
| | | |
| | | // 素材 |
| | | try { |
| | | List<GoodsEvaluate> list = goodsEvaluateDao.queryValid(0, Integer.MAX_VALUE, 2); |
| | | if (list != null) { |
| | | for (GoodsEvaluate goodsEvaluate : list) { |
| | | Integer shareNum = goodsEvaluate.getShareNum(); |
| | | if (shareNum == null) { |
| | | shareNum = 0; |
| | | } |
| | | goodsEvaluate.setShareNum(shareNum + (int) (Math.random() * 100) + 10); |
| | | goodsEvaluateDao.save(goodsEvaluate); |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | LogHelper.errorDetailInfo(e); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | |
| | | executor.execute(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | // 更新信息 |
| | | updateGoodInfo(list); |
| | | |
| | | // 删除已过期 |
| | | removeOverdue(); |
| | | |
| | | removeDownGoods(); |
| | | } |
| | | }); |
| | | |
| | |
| | | } |
| | | |
| | | @Override |
| | | // @Cacheable(value = "dynamicCache", key = "'queryMaterialsCache-'+#start+'-'+#type") |
| | | @Cacheable(value = "dynamicCache", key = "'queryMaterialsCache-'+#start+'-'+#type") |
| | | public List<GoodsEvaluate> queryMaterialsCache(int start, int count, int type) throws Exception { |
| | | List<GoodsEvaluate> list = goodsEvaluateDao.queryValid(start, count, type); |
| | | if (list == null) { |
| | |
| | | |
| | | List<GoodsEvaluate> listNew = new ArrayList<>(); |
| | | for (GoodsEvaluate goodsEvaluate : list) { |
| | | |
| | | GoodsEvaluate evaluateNew = new GoodsEvaluate(); |
| | | try { |
| | | PropertyUtils.copyProperties(evaluateNew, goodsEvaluate); |
| | |
| | | continue; |
| | | } |
| | | |
| | | int comment = 0; |
| | | // 按照发布显示时间段起始时间为准。 |
| | | evaluateNew.setPublishTime(evaluateNew.getStartTime()); |
| | | |
| | | List<CommentInfo> comments = evaluateNew.getComments(); |
| | | if (comments != null && comments.size() > 0) { |
| | | EvaluateEnum typeEnum = evaluateNew.getType(); |
| | | List<CommentInfo> commentNew = new ArrayList<>(); |
| | | |
| | | boolean singleCoupn = true; |
| | | boolean currencyCoupon = true; |
| | | for (CommentInfo commentInfo : comments) { |
| | | if (StringUtil.isNullOrEmpty(commentInfo.getContent()) && |
| | | StringUtil.isNullOrEmpty(commentInfo.getCoupon())) { |
| | | if (StringUtil.isNullOrEmpty(commentInfo.getContent()) |
| | | && StringUtil.isNullOrEmpty(commentInfo.getCoupon())) { |
| | | continue; |
| | | } |
| | | |
| | | |
| | | CommentInfo commentInfoNew = new CommentInfo(); |
| | | try { |
| | | PropertyUtils.copyProperties(commentInfoNew, commentInfo); |
| | |
| | | e.printStackTrace(); |
| | | continue; |
| | | } |
| | | |
| | | comment++; |
| | | |
| | | if (typeEnum != null && typeEnum == EvaluateEnum.single) { |
| | | GoodsDetailVO goods = evaluateNew.getGoods(); |
| | | if (goods != null) { |
| | | String content = commentInfoNew.getContent(); |
| | | if (!StringUtil.isNullOrEmpty(content)) { |
| | | content = content.replace("[原价]", |
| | | MoneyBigDecimalUtil.getWithNoZera(goods.getZkPrice()) + ""); |
| | | if (goods.isHasCoupon()) { |
| | | content = content.replace("[券后价]", |
| | | MoneyBigDecimalUtil.getWithNoZera(goods.getCouponPrice()) + ""); |
| | | } else { |
| | | singleCoupn = false; |
| | | content = content.replace("领券抢购", "抢购"); |
| | | content = content.replace("【券后价】[券后价]元", ""); |
| | | } |
| | | content = content.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n"); |
| | | // 替换淘宝官方活动 |
| | | List<String> activityIdList = convertLinkManager.getTaoBaoOfficialActivityId(content); |
| | | for (String st : activityIdList) |
| | | content = content.replace(st, ""); |
| | | |
| | | commentInfoNew.setContent(content); |
| | | } |
| | | } |
| | | } |
| | | if (typeEnum != null && typeEnum == EvaluateEnum.activity) { |
| | | // 替换淘宝官方活动 |
| | | String content = commentInfoNew.getContent(); |
| | | List<String> activityIdList = convertLinkManager.getTaoBaoOfficialActivityId(content); |
| | | for (String st : activityIdList) |
| | | content = content.replace(st, ""); |
| | | commentInfoNew.setContent(content); |
| | | } |
| | | |
| | | CommentInfoEnum typeComment = commentInfoNew.getTypeEnum(); |
| | | if (typeComment != null && typeComment == CommentInfoEnum.goodsCoupon) { |
| | | GoodsDetailVO goods = evaluateNew.getGoods(); |
| | |
| | | if (tagList != null) { |
| | | tagListNew.addAll(tagList); |
| | | } |
| | | |
| | | |
| | | ClientTextStyleVO styleVO = new ClientTextStyleVO(); |
| | | styleVO.setColor("#E5005C"); |
| | | styleVO.setContent(daysBetween + "后过期"); |
| | |
| | | commentInfoNew.setTagList(tagListNew); |
| | | commentNew.add(commentInfoNew); |
| | | continue; |
| | | } else { |
| | | currencyCoupon = false; |
| | | continue; |
| | | } |
| | | } else { |
| | | currencyCoupon = false; |
| | | continue; |
| | | } |
| | | } |
| | | |
| | |
| | | evaluateNew.setComments(commentNew); |
| | | |
| | | if (typeEnum != null && typeEnum == EvaluateEnum.single) { |
| | | if (comment > 0 && commentNew.size() == 0) { // 所有券评论下架 |
| | | if (!currencyCoupon && !singleCoupn) { // 所有券评论下架 |
| | | GoodsDetailVO goods = evaluateNew.getGoods(); |
| | | if (goods != null) { |
| | | goods.setState(1); // 评论不存在 下架 |
| | | LogHelper.test("获取列表商品下架1"); |
| | | evaluateNew.setRemarks("评论验证下架"); |
| | | } |
| | | |
| | | List<ImgInfo> imgList = evaluateNew.getImgList(); |
| | |
| | | SimpleGoods simpleGoods = imgInfo.getGoods(); |
| | | if (simpleGoods != null) { |
| | | simpleGoods.setState(1); |
| | | LogHelper.test("获取列表商品下架2"); |
| | | simpleGoods.setRemarks("评论验证下架"); |
| | | } |
| | | } |
| | | |
| | |
| | | @Override |
| | | public void run() { |
| | | updateGoodInfo(listOBJ); |
| | | |
| | | // 删除已过期 |
| | | removeOverdue(); |
| | | |
| | | removeDownGoods(); |
| | | } |
| | | }); |
| | | |
| | |
| | | |
| | | 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); |
| | | SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | ConfigParamsDTO params = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55"); |
| | | params.setBaseFanliRate(hongBaoManageService.getBaseFanliRate()); |
| | | for (GoodsEvaluate goodsEvaluate : list) { |
| | | // 是否2个小时之内已更新 |
| | | Date updateTime = goodsEvaluate.getUpdateTime(); |
| | |
| | | if (commentInfoEnum != null && commentInfoEnum == CommentInfoEnum.currencyCoupon) { |
| | | String endTime = commentInfo.getEndTime(); |
| | | if (!StringUtil.isNullOrEmpty(endTime)) { |
| | | Date endDay = sdf.parse(endTime); |
| | | Date endDay = format.parse(endTime); |
| | | if (endDay.getTime() < now.getTime()) { |
| | | goodsEvaluate.setState(0); // 活动过期 |
| | | } |
| | |
| | | |
| | | 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 { |
| | | goodsEvaluate.setRemarks("更新-位置找到商品信息"); |
| | | goodsEvaluate.setState(0); // 已商品下架 |
| | | goods.setState(1); |
| | | goodsEvaluate.setGoods(goods); |
| | |
| | | } |
| | | |
| | | GoodsDetailVO goodsDetailVO = getGoodsNewInfo(simpleGoods.getGoodsId(), simpleGoods.getGoodsType(), |
| | | paramsDTO); |
| | | params); |
| | | if (goodsDetailVO != null) { |
| | | simpleGoods.setPrice(goodsDetailVO.getCouponPrice()); |
| | | simpleGoods.setState(0); |
| | |
| | | imgInfo.setGoods(simpleGoods); |
| | | imgInfo.setGoodsVO(goodsDetailVO); |
| | | } else { |
| | | simpleGoods.setRemarks("更新-位置找到商品信息"); |
| | | simpleGoods.setState(1); |
| | | imgInfo.setGoods(simpleGoods); |
| | | GoodsDetailVO goodsVO = imgInfo.getGoodsVO(); |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | goodsEvaluate.setImgList(imgList); |
| | | goodsEvaluate.setUpdateTime(new Date()); |
| | | goodsEvaluateDao.save(goodsEvaluate); |
| | | } |
| | |
| | | } |
| | | |
| | | @Override |
| | | public void addGoodsEvaluateByDynamicInfo(DynamicInfo info) { |
| | | if (1 > 0) { |
| | | return; // 暂不启用自动生成 |
| | | public void addGoodsEvaluate(Long goodsId, List<ImgInfo> imgList, ActivityUser user, String title, String comment, |
| | | Date startTime) throws GoodsEvaluateException { |
| | | if (goodsId == null || user == null || StringUtil.isNullOrEmpty(title)) { |
| | | throw new GoodsEvaluateException(1, "相关参数不能为空"); |
| | | } |
| | | |
| | | if (info == null) { |
| | | List<GoodsEvaluate> evaluateList = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_TAOBAO, goodsId); |
| | | if (evaluateList != null && evaluateList.size() > 0) |
| | | return; |
| | | |
| | | TaoBaoGoodsBrief goodsBrief = null; |
| | | try { |
| | | goodsBrief = redisManager.getTaoBaoGoodsBrief(goodsId); |
| | | } catch (TaobaoGoodsDownException e) { |
| | | throw new GoodsEvaluateException(1, "商品已下架"); |
| | | } |
| | | |
| | | try { |
| | | GoodsEvaluate goodsEvaluate = new GoodsEvaluate(); |
| | | goodsEvaluate.setId(UUID.randomUUID().toString().replace("-", "")); |
| | | ActivityUser user = info.getUser(); |
| | | goodsEvaluate.setUser(user); |
| | | goodsEvaluate.setState(1); |
| | | goodsEvaluate.setDynamicType(1); |
| | | goodsEvaluate.setType(EvaluateEnum.single); |
| | | goodsEvaluate.setLineNum(2); |
| | | goodsEvaluate.setShareNum(info.getShareCount()); |
| | | goodsEvaluate.setShareNumReal(0); |
| | | goodsEvaluate.setPublishTime(info.getCreateTime()); |
| | | goodsEvaluate.setCreateTime(new Date()); |
| | | goodsEvaluate.setUpdateTime(new Date()); |
| | | goodsEvaluate.setWeight(0.0); |
| | | goodsEvaluate.setStartTime(new Date()); |
| | | goodsEvaluate.setEndTime(DateUtil.plusDayDate(3, new Date())); |
| | | |
| | | List<ClientTextStyleVO> titles = info.getTitle(); |
| | | if (titles != null) { |
| | | goodsEvaluate.setTitle(info.getTitle().get(0).getContent()); |
| | | } else { |
| | | goodsEvaluate.setTitle(""); |
| | | } |
| | | |
| | | List<ImgInfo> imgList = new ArrayList<>(); |
| | | |
| | | List<GoodsPicture> imgs = info.getImgs(); |
| | | for (GoodsPicture goodsPicture : imgs) { |
| | | ImgInfo imgInfo = new ImgInfo(); |
| | | imgInfo.setH(1); |
| | | imgInfo.setW(1); |
| | | imgInfo.setLarge(false); |
| | | imgInfo.setUrl(goodsPicture.getUrl()); |
| | | imgInfo.setUrlHD(goodsPicture.getUrl()); |
| | | |
| | | GoodsDetailVO goodsVO = goodsPicture.getGoodsVO(); |
| | | if (goodsVO == null) { |
| | | imgInfo.setType(ImgEnum.img); |
| | | } else { |
| | | imgInfo.setType(ImgEnum.goods); |
| | | SimpleGoods simpleGoods = new SimpleGoods(); |
| | | simpleGoods.setGoodsId(goodsVO.getGoodsId()); |
| | | simpleGoods.setGoodsType(goodsVO.getGoodsType()); |
| | | simpleGoods.setState(goodsVO.getState()); |
| | | CouponInfoVO couponInfo = goodsVO.getCouponInfo(); |
| | | if (couponInfo == null) { |
| | | simpleGoods.setPrice(goodsVO.getZkPrice()); |
| | | } else { |
| | | simpleGoods.setPrice(goodsVO.getCouponPrice()); |
| | | simpleGoods.setAmount(couponInfo.getAmount()); |
| | | } |
| | | imgInfo.setGoods(simpleGoods); |
| | | |
| | | TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(1L, goodsVO.getGoodsId(), "0"); |
| | | |
| | | // TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(Constant.LINK_TOKEN_VERIFY_UID, goodsVO.getGoodsId(), null); |
| | | String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey()); |
| | | String commentText = template.replace("[淘口令]", TaoBaoUtil.filterTaoToken(taoBaoLink.getTaoToken())); |
| | | |
| | | commentText = commentText.replace("[原价]", goodsVO.getZkPrice().toString()); |
| | | if (!goodsVO.isHasCoupon()) { |
| | | commentText = commentText.replace("领券抢购", "抢购"); |
| | | commentText = commentText.replace("【券后价】[券后价]元", ""); |
| | | } else { |
| | | commentText = commentText.replace("[券后价]", goodsVO.getCouponPrice().toString()); |
| | | } |
| | | commentText = commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n") |
| | | .replace("\r\n\r\n", "\r\n"); |
| | | |
| | | CommentInfo commentInfo = new CommentInfo(); |
| | | commentInfo.setId(UUID.randomUUID().toString().replace("-", "")); |
| | | commentInfo.setContent(commentText); |
| | | commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon); |
| | | commentInfo.setType(CommentInfoEnum.goodsCoupon.getDesc()); |
| | | |
| | | List<CommentInfo> commentsNew = new ArrayList<>(); |
| | | commentsNew.add(commentInfo); |
| | | goodsEvaluate.setComments(commentsNew); |
| | | |
| | | goodsEvaluate.setGoods(goodsVO); |
| | | |
| | | } |
| | | imgList.add(imgInfo); |
| | | } |
| | | goodsEvaluate.setImgList(imgList); |
| | | goodsEvaluateDao.save(goodsEvaluate); |
| | | } catch (Exception e) { |
| | | LogHelper.errorDetailInfo(e); |
| | | if (goodsBrief == null) { |
| | | throw new GoodsEvaluateException(1, "未找到商品信息"); |
| | | } |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public void addGoodsEvaluateByDaTaoKe() { |
| | | try { |
| | | List<DaTaoKeDetailV2> list = daTaoKeGoodsDetailV2Service.getGoodsNotInList(1L, null, 1); |
| | | if (list == null || list.size() == 0) { |
| | | return; |
| | | } |
| | | |
| | | DaTaoKeDetailV2 daTaoKe = list.get(0); |
| | | TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(daTaoKe.getGoodsId()); |
| | | if (goodsBrief == null) { |
| | | return; |
| | | } |
| | | |
| | | 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); |
| | | // 发布用户 |
| | | ActivityUser user = activityUserService.getRandomByDaTaoKeCid(daTaoKe.getCid()); |
| | | |
| | | String desc = DaTaoKeUtil.getDesc(daTaoKe); |
| | | if (!StringUtil.isNullOrEmpty(desc)) { |
| | | int index = desc.lastIndexOf("\n"); |
| | | String newDesc = desc.substring(index + 1); |
| | | if (StringUtil.isNullOrEmpty(newDesc)) { |
| | | desc = desc.substring(0, index); |
| | | } |
| | | } |
| | | |
| | | GoodsEvaluate goodsEvaluate = new GoodsEvaluate(); |
| | | goodsEvaluate.setId(UUID.randomUUID().toString().replace("-", "")); |
| | | goodsEvaluate.setUser(user); |
| | | goodsEvaluate.setTitle(desc); |
| | | goodsEvaluate.setState(1); |
| | | goodsEvaluate.setDynamicType(1); |
| | | goodsEvaluate.setType(EvaluateEnum.single); |
| | | |
| | | goodsEvaluate.setShareNum((int) (Math.random() * 5000) + 1000); |
| | | goodsEvaluate.setShareNumReal(0); |
| | | goodsEvaluate.setWeight(0.0); |
| | | goodsEvaluate.setStartTime(new Date()); |
| | | goodsEvaluate.setEndTime(DateUtil.plusDayDate(3, new Date())); |
| | | goodsEvaluate.setPublishTime(new Date()); |
| | | goodsEvaluate.setCreateTime(new Date()); |
| | | goodsEvaluate.setUpdateTime(new Date()); |
| | | |
| | | |
| | | List<ImgInfo> imgList = new ArrayList<>(); |
| | | |
| | | int lineNum = 0; |
| | | if (imgList.size() > 0) { |
| | | if (imgList.size() == 1) { |
| | | lineNum = 1; |
| | | } else if (imgList.size() == 3) { |
| | | lineNum = 3; |
| | | } else if (imgList.size() <= 4) { |
| | | lineNum = 2; |
| | | } else { |
| | | lineNum = 3; |
| | | } |
| | | } |
| | | goodsEvaluate.setLineNum(lineNum); |
| | | |
| | | int i = 0; |
| | | List<String> imgs = goodsBrief.getImgList(); |
| | | BigDecimal couponAmount = goodsBrief.getCouponAmount(); |
| | | if (couponAmount == null || couponAmount.compareTo(new BigDecimal(0)) < 1) { |
| | | throw new GoodsEvaluateException(1, "该商品无券"); |
| | | } |
| | | |
| | | // 白底图 |
| | | List<String> imgs = new ArrayList<>(); |
| | | if (!StringUtil.isNullOrEmpty(goodsBrief.getPictUrlWhite())) { |
| | | imgs.add(goodsBrief.getPictUrlWhite()); |
| | | } |
| | | imgs.addAll(goodsBrief.getImgList()); |
| | | |
| | | // 商品VO |
| | | ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55"); |
| | | paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate()); |
| | | GoodsDetailVO goodsVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, paramsDTO); |
| | | |
| | | // 商品图片信息 |
| | | int i = 0; |
| | | if (imgList == null || imgList.size() == 0) |
| | | for (String img : imgs) { |
| | | ImgInfo imgInfo = new ImgInfo(); |
| | | imgInfo.setH(1); |
| | |
| | | simpleGoods.setAmount(couponInfo.getAmount()); |
| | | } |
| | | imgInfo.setGoods(simpleGoods); |
| | | imgInfo.setGoodsVO(goodsVO); |
| | | } |
| | | imgList.add(imgInfo); |
| | | i++; |
| | | } |
| | | |
| | | //TaoBaoLink taoBaoLink = shareGoodsService.getTaoBaoLinkForShare(Constant.LINK_TOKEN_VERIFY_UID, goodsVO.getGoodsId(), null); |
| | | // 评论内容 |
| | | CommentInfo commentInfo = new CommentInfo(); |
| | | commentInfo.setNeedSpin(true); |
| | | commentInfo.setId(UUID.randomUUID().toString().replace("-", "")); |
| | | commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon); |
| | | if (!StringUtil.isNullOrEmpty(comment)) { |
| | | commentInfo.setContent(comment); |
| | | commentInfo.setType(""); |
| | | } else { |
| | | String token = shareGoodsService.createTaoBaoToken(Constant.LINK_TOKEN_VERIFY_UID, goodsBrief); |
| | | String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey()); |
| | | String commentText = template.replace("[淘口令]", TaoBaoUtil.filterTaoToken(token)); |
| | | if (!goodsVO.isHasCoupon()) { |
| | | commentText = commentText.replace("领券抢购", "抢购"); |
| | | commentText = commentText.replace("【券后价】[券后价]元", ""); |
| | | commentText = commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n","\r\n"); |
| | | } |
| | | commentInfo.setContent(commentText); |
| | | commentInfo.setType(CommentInfoEnum.goodsCoupon.getDesc()); |
| | | } |
| | | |
| | | List<CommentInfo> commentsNew = new ArrayList<>(); |
| | | commentsNew.add(commentInfo); |
| | | |
| | | // 一行显示多少个图片 |
| | | int lineNum = 0; |
| | | if (imgList.size() > 0) { |
| | | if (imgList.size() == 1) { |
| | | lineNum = 1; |
| | | } else if (imgList.size() == 3) { |
| | | lineNum = 3; |
| | | } else if (imgList.size() == 2 || imgList.size() == 4) { |
| | | lineNum = 2; |
| | | } else { |
| | | lineNum = 3; |
| | | } |
| | | } |
| | | |
| | | GoodsEvaluate goodsEvaluate = new GoodsEvaluate(); |
| | | goodsEvaluate.setId(UUID.randomUUID().toString().replace("-", "")); |
| | | goodsEvaluate.setUser(user); |
| | | goodsEvaluate.setTitle(getDescNew(title)); |
| | | goodsEvaluate.setState(1); |
| | | goodsEvaluate.setDynamicType(1); |
| | | goodsEvaluate.setType(EvaluateEnum.single); |
| | | goodsEvaluate.setShareNum((int) (Math.random() * 5000) + 1000); |
| | | goodsEvaluate.setShareNumReal(0); |
| | | goodsEvaluate.setWeight(0.0); |
| | | if (startTime == null) |
| | | startTime = new Date(); |
| | | goodsEvaluate.setStartTime(startTime); |
| | | goodsEvaluate.setEndTime(DateUtil.plusDayDate(3, new Date())); |
| | | goodsEvaluate.setPublishTime(new Date()); |
| | | goodsEvaluate.setCreateTime(new Date()); |
| | | goodsEvaluate.setUpdateTime(new Date()); |
| | | goodsEvaluate.setGoods(goodsVO); |
| | | goodsEvaluate.setLineNum(lineNum); |
| | | goodsEvaluate.setImgList(imgList); |
| | | goodsEvaluate.setComments(commentsNew); |
| | | goodsEvaluateDao.save(goodsEvaluate); |
| | | } |
| | | |
| | | @Override |
| | | public void addGoodsEvaluateByDaTaoKe() { |
| | | List<Long> listId = null; |
| | | List<GoodsEvaluate> listExist = goodsEvaluateDao.querySingleExist(); |
| | | if (listExist != null && listExist.size() > 0) { |
| | | listId = new ArrayList<Long>(); |
| | | for (GoodsEvaluate goodsEvaluate : listExist) { |
| | | GoodsDetailVO goods = goodsEvaluate.getGoods(); |
| | | if (goods != null && goods.getGoodsType() == 1) { |
| | | listId.add(goods.getGoodsId()); |
| | | } |
| | | } |
| | | } |
| | | // 热销单品的分类 |
| | | List<GoodsClass> listClass = DaTaoKeUtil.goodsClasses; |
| | | int ci = (int) (Math.random() * listClass.size()); |
| | | Long subId = listClass.get(ci).getId(); |
| | | |
| | | List<DaTaoKeDetailV2> list = daTaoKeGoodsDetailV2Service.getGoodsNotInList(subId, listId, 1); |
| | | if (list == null || list.size() == 0) { |
| | | return; |
| | | } |
| | | |
| | | for (int i = 0; i < list.size(); i++) { |
| | | boolean cerateGoods = cerateGoods(list.get(i)); |
| | | if (cerateGoods) { |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | |
| | | private boolean cerateGoods(DaTaoKeDetailV2 daTaoKe) { |
| | | try { |
| | | TaoBaoGoodsBrief goodsBrief = redisManager.getTaoBaoGoodsBrief(daTaoKe.getGoodsId()); |
| | | if (goodsBrief == null) { |
| | | return false; |
| | | } |
| | | |
| | | BigDecimal couponAmount = goodsBrief.getCouponAmount(); |
| | | if (couponAmount == null || couponAmount.compareTo(new BigDecimal(0)) < 1) { |
| | | return false; |
| | | } |
| | | |
| | | ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate("android", "55"); |
| | | paramsDTO.setBaseFanliRate(hongBaoManageService.getBaseFanliRate()); |
| | | GoodsDetailVO goodsVO = GoodsDetailVOFactory.convertTaoBao(goodsBrief, paramsDTO); |
| | | // 发布用户 |
| | | ActivityUser user = activityUserService.getRandomByDaTaoKeCid(daTaoKe.getCid()); |
| | | |
| | | String desc = daTaoKe.getDesc().replace(",", ","); |
| | | String[] split = desc.split(","); |
| | | int max = 1; |
| | | if (Math.random() > 0.5) { |
| | | max = 2; |
| | | } |
| | | int e = 0; |
| | | String emojis = ""; |
| | | String descNew = ""; |
| | | if (split.length > 0) { |
| | | for (int i = 0; i < split.length; i++) { |
| | | if (Math.random() > 0.5 && e < max) { |
| | | for (int j = 0; j < 10; j++) { |
| | | String emojisTemp = DaTaoKeUtil.getEvaluateEmojis(); |
| | | if (!emojis.equals(emojisTemp)) { |
| | | emojis = emojisTemp; |
| | | break; |
| | | } |
| | | } |
| | | e++; |
| | | descNew += split[i] + emojis; |
| | | } else { |
| | | descNew += split[i] + ","; |
| | | } |
| | | } |
| | | } else { |
| | | descNew = desc; |
| | | } |
| | | |
| | | if (descNew.endsWith(",")) { |
| | | descNew = descNew.substring(0, descNew.length() - 1); |
| | | } |
| | | |
| | | GoodsEvaluate goodsEvaluate = new GoodsEvaluate(); |
| | | goodsEvaluate.setId(UUID.randomUUID().toString().replace("-", "")); |
| | | goodsEvaluate.setUser(user); |
| | | goodsEvaluate.setTitle(descNew); |
| | | goodsEvaluate.setState(1); |
| | | goodsEvaluate.setDynamicType(1); |
| | | goodsEvaluate.setType(EvaluateEnum.single); |
| | | |
| | | goodsEvaluate.setShareNum((int) (Math.random() * 5000) + 1000); |
| | | goodsEvaluate.setShareNumReal(0); |
| | | goodsEvaluate.setWeight(0.0); |
| | | goodsEvaluate.setStartTime(new Date()); |
| | | goodsEvaluate.setEndTime(DateUtil.plusDayDate(3, new Date())); |
| | | goodsEvaluate.setPublishTime(new Date()); |
| | | goodsEvaluate.setCreateTime(new Date()); |
| | | goodsEvaluate.setUpdateTime(new Date()); |
| | | |
| | | List<String> goodsimgs = goodsBrief.getImgList(); |
| | | |
| | | List<String> imgs = new ArrayList<>(); |
| | | if (!StringUtil.isNullOrEmpty(goodsBrief.getPictUrlWhite())) { |
| | | imgs.add(goodsBrief.getPictUrlWhite()); |
| | | } |
| | | imgs.addAll(goodsimgs); |
| | | |
| | | |
| | | int i = 0; |
| | | 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); |
| | | if (i != 0) { |
| | | imgInfo.setType(ImgEnum.img); |
| | | } else { |
| | | imgInfo.setType(ImgEnum.goods); |
| | | SimpleGoods simpleGoods = new SimpleGoods(); |
| | | simpleGoods.setGoodsId(goodsVO.getGoodsId()); |
| | | simpleGoods.setGoodsType(goodsVO.getGoodsType()); |
| | | simpleGoods.setState(goodsVO.getState()); |
| | | CouponInfoVO couponInfo = goodsVO.getCouponInfo(); |
| | | if (couponInfo == null) { |
| | | simpleGoods.setPrice(goodsVO.getZkPrice()); |
| | | } else { |
| | | simpleGoods.setPrice(goodsVO.getCouponPrice()); |
| | | simpleGoods.setAmount(couponInfo.getAmount()); |
| | | } |
| | | imgInfo.setGoods(simpleGoods); |
| | | imgInfo.setGoodsVO(goodsVO); |
| | | |
| | | // TaoBaoLink taoBaoLink = |
| | | // shareGoodsService.getTaoBaoLinkForShare(Constant.LINK_TOKEN_VERIFY_UID, |
| | | // goodsVO.getGoodsId(), null); |
| | | |
| | | String token = shareGoodsService.createTaoBaoToken(Constant.LINK_TOKEN_VERIFY_UID, goodsBrief); |
| | | |
| | | |
| | | String template = configService.get(ConfigKeyEnum.quickShareTBCommentText.getKey()); |
| | | String commentText = template.replace("[淘口令]", TaoBaoUtil.filterTaoToken(token)); |
| | | |
| | | commentText = commentText.replace("[原价]", goodsVO.getZkPrice().toString()); |
| | | if (!goodsVO.isHasCoupon()) { |
| | | commentText = commentText.replace("领券抢购", "抢购"); |
| | | commentText = commentText.replace("【券后价】[券后价]元", ""); |
| | | } else { |
| | | commentText = commentText.replace("[券后价]", goodsVO.getCouponPrice().toString()); |
| | | } |
| | | commentText = commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n") |
| | | .replace("\r\n\r\n", "\r\n"); |
| | | commentText = commentText.replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n").replace("\r\n\r\n", "\r\n"); |
| | | } |
| | | |
| | | CommentInfo commentInfo = new CommentInfo(); |
| | | commentInfo.setNeedSpin(true); |
| | | commentInfo.setId(UUID.randomUUID().toString().replace("-", "")); |
| | | commentInfo.setContent(commentText); |
| | | commentInfo.setTypeEnum(CommentInfoEnum.goodsCoupon); |
| | | commentInfo.setType(CommentInfoEnum.goodsCoupon.getDesc()); |
| | | |
| | | String text2 = ""; |
| | | String evaluateEmojis = configService.get(ConfigKeyEnum.evaluateEmojis.getKey()); |
| | | if (!StringUtil.isNullOrEmpty(evaluateEmojis)) { |
| | | text2 = evaluateEmojis + "\n"; |
| | | } |
| | | |
| | | String evaluateText = configService.get(ConfigKeyEnum.evaluateText.getKey()); |
| | | if (!StringUtil.isNullOrEmpty(evaluateText)) { |
| | | text2 += evaluateText; |
| | | } |
| | | |
| | | String dtitle = daTaoKe.getDtitle(); |
| | | if (!StringUtil.isNullOrEmpty(dtitle)) { |
| | | text2 = text2 + dtitle + "\n"; |
| | | } else if (!StringUtil.isNullOrEmpty(evaluateText)) { |
| | | text2 += "\n"; |
| | | } |
| | | text2 += "先领【" + couponAmount + "元优惠券】下单"; |
| | | |
| | | CommentInfo commentInfo2 = new CommentInfo(); |
| | | commentInfo2.setId(UUID.randomUUID().toString().replace("-", "")); |
| | | commentInfo2.setContent(text2); |
| | | commentInfo2.setTypeEnum(CommentInfoEnum.goodsCoupon); |
| | | commentInfo2.setType(""); |
| | | commentInfo2.setNeedSpin(true); |
| | | |
| | | List<CommentInfo> commentsNew = new ArrayList<>(); |
| | | commentsNew.add(commentInfo); |
| | | commentsNew.add(commentInfo2); |
| | | goodsEvaluate.setComments(commentsNew); |
| | | |
| | | goodsEvaluate.setGoods(goodsVO); |
| | | } |
| | | |
| | | imgList.add(imgInfo); |
| | | i ++; |
| | | i++; |
| | | } |
| | | |
| | | int lineNum = 0; |
| | | if (imgList.size() > 0) { |
| | | if (imgList.size() == 1) { |
| | | lineNum = 1; |
| | | } else if (imgList.size() == 3) { |
| | | lineNum = 3; |
| | | } else if (imgList.size() == 2 || imgList.size() == 4) { |
| | | lineNum = 2; |
| | | } else { |
| | | lineNum = 3; |
| | | } |
| | | } |
| | | goodsEvaluate.setLineNum(lineNum); |
| | | |
| | | goodsEvaluate.setGoods(goodsVO); |
| | | goodsEvaluate.setImgList(imgList); |
| | | goodsEvaluateDao.save(goodsEvaluate); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | LogHelper.errorDetailInfo(e); |
| | | return false; |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | /** |
| | | * 发圈标题 加入表情 |
| | | * @param desc |
| | | * @return |
| | | */ |
| | | private String getDescNew(String desc) { |
| | | String[] split = desc.split(","); |
| | | int max = 1; |
| | | if (Math.random() > 0.5) { |
| | | max = 2; |
| | | } |
| | | int e = 0; |
| | | String emojis = ""; |
| | | String descNew = ""; |
| | | if (split.length > 0) { |
| | | for (int i = 0; i < split.length; i++) { |
| | | if (Math.random() > 0.5 && e < max) { |
| | | for (int j = 0; j < 10; j++) { |
| | | String emojisTemp = DaTaoKeUtil.getEvaluateEmojis(); |
| | | if (!emojis.equals(emojisTemp)) { |
| | | emojis = emojisTemp; |
| | | break; |
| | | } |
| | | } |
| | | e++; |
| | | descNew += split[i] + emojis; |
| | | } else { |
| | | descNew += split[i] + ","; |
| | | } |
| | | } |
| | | } else { |
| | | descNew = desc; |
| | | } |
| | | |
| | | if (descNew.endsWith(",")) { |
| | | descNew = descNew.substring(0, descNew.length() - 1); |
| | | } |
| | | return descNew; |
| | | } |
| | | |
| | | @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 = orderHongBaoMoneyComputeService.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 = orderHongBaoMoneyComputeService.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 = orderHongBaoMoneyComputeService.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 || simpleGoods.getGoodsId() != goodsId |
| | | || goodsType != simpleGoods.getGoodsType()) { |
| | | continue; |
| | | } |
| | | |
| | | simpleGoods.setState(0); |
| | | simpleGoods.setPrice(goodsNew.getCouponPrice()); |
| | | CouponInfoVO couponInfo = goodsNew.getCouponInfo(); |
| | | if (couponInfo == null) { |
| | | simpleGoods.setPrice(goodsNew.getZkPrice()); |
| | | } else { |
| | | simpleGoods.setPrice(goodsNew.getCouponPrice()); |
| | | simpleGoods.setAmount(couponInfo.getAmount()); |
| | | } |
| | | |
| | | imgInfo.setGoods(simpleGoods); |
| | | imgInfo.setGoodsVO(goodsNew); |
| | | } |
| | | |
| | | goodsEvaluate.setImgList(imgList); |
| | | goodsEvaluate.setUpdateTime(new Date()); |
| | | goodsEvaluateDao.save(goodsEvaluate); |
| | | } |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public void offlineTaoBaoGoods(Long goodsId) { |
| | | try { |
| | | if (goodsId == null) { |
| | | return; |
| | | } |
| | | List<GoodsEvaluate> list = goodsEvaluateDao.queryExist(Constant.SOURCE_TYPE_TAOBAO, goodsId); |
| | | if (list == null || list.size() == 0) { |
| | | return; |
| | | } |
| | | |
| | | // 下架商品 |
| | | offlineGoods(list, Constant.SOURCE_TYPE_TAOBAO, goodsId); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | @CacheEvict(value = "dynamicCache", allEntries = true) |
| | | private void offlineGoods(List<GoodsEvaluate> list, int goodsType, Long goodsId) { |
| | | |
| | | for (GoodsEvaluate goodsEvaluate : list) { |
| | | // 商品下架 |
| | | GoodsDetailVO goodsDetailVO = goodsEvaluate.getGoods(); |
| | | goodsDetailVO.setState(1); |
| | | |
| | | List<ImgInfo> imgList = goodsEvaluate.getImgList(); |
| | | if (imgList == null || imgList.size() == 0) { |
| | | goodsEvaluate.setUpdateTime(new Date()); |
| | | goodsEvaluateDao.save(goodsEvaluate); |
| | | continue; |
| | | } |
| | | |
| | | for (ImgInfo imgInfo : imgList) { |
| | | SimpleGoods simpleGoods = imgInfo.getGoods(); |
| | | if (simpleGoods == null || simpleGoods.getGoodsId() != goodsId |
| | | || goodsType != simpleGoods.getGoodsType()) { |
| | | continue; |
| | | } |
| | | simpleGoods.setState(1); |
| | | GoodsDetailVO goodsVO = imgInfo.getGoodsVO(); |
| | | goodsVO.setState(1); |
| | | |
| | | imgInfo.setGoods(simpleGoods); |
| | | imgInfo.setGoodsVO(goodsVO); |
| | | } |
| | | |
| | | goodsEvaluate.setImgList(imgList); |
| | | goodsEvaluate.setUpdateTime(new Date()); |
| | | goodsEvaluateDao.save(goodsEvaluate); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 删除已过期时间 |
| | | */ |
| | | private void removeOverdue() { |
| | | if(1>0) |
| | | return; |
| | | |
| | | List<GoodsEvaluate> list = goodsEvaluateDao.queryOverdue(); |
| | | if (list == null || list.size() == 0) { |
| | | return; |
| | | } |
| | | long nm = 1000 * 60;// 一分钟的毫秒数 |
| | | long nh = 1000 * 60 * 60;// 一小时的毫秒数 |
| | | long nd = 1000 * 24 * 60 * 60;// 一天的毫秒数 |
| | | |
| | | long time = java.lang.System.currentTimeMillis(); |
| | | for (GoodsEvaluate goodsEvaluate : list) { |
| | | long diff = time - goodsEvaluate.getEndTime().getTime(); |
| | | long min = diff % nd % nh / nm; |
| | | |
| | | // 过期超过10分钟就删除 |
| | | if (min > 10) { |
| | | goodsEvaluateDao.remove(goodsEvaluate); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 删除商品已下架-单品 |
| | | */ |
| | | private void removeDownGoods() { |
| | | if(1>0) |
| | | return; |
| | | try { |
| | | List<GoodsEvaluate> list = goodsEvaluateDao.removeDownGoods(); |
| | | if (list == null || list.size() == 0) { |
| | | return; |
| | | } |
| | | |
| | | for (GoodsEvaluate goodsEvaluate : list) { |
| | | goodsEvaluateDao.remove(goodsEvaluate); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | } |