From 09417e97672be66c5e312b10f23a9e30da3acb97 Mon Sep 17 00:00:00 2001 From: Administrator <Administrator@MS-20170306HGUF> Date: 星期一, 24 二月 2020 15:23:08 +0800 Subject: [PATCH] 热销转换发圈 --- fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java | 901 ++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 776 insertions(+), 125 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 aeed4eb..a00ead7 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,8 +1,12 @@ package com.yeshi.fanli.service.impl.dynamic; +import java.awt.image.BufferedImage; import java.io.InputStream; +import java.io.PrintWriter; +import java.lang.reflect.Type; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Calendar; import java.util.Collections; import java.util.Comparator; import java.util.Date; @@ -10,22 +14,36 @@ import java.util.UUID; import javax.annotation.Resource; +import javax.imageio.ImageIO; 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.JsonUtil; import org.yeshi.utils.tencentcloud.COSManager; import com.google.gson.Gson; -import com.google.gson.reflect.TypeToken; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonElement; +import com.google.gson.JsonPrimitive; +import com.google.gson.JsonSerializationContext; +import com.google.gson.JsonSerializer; import com.yeshi.fanli.dao.dynamic.GoodsEvaluateDao; import com.yeshi.fanli.dto.ConfigParamsDTO; import com.yeshi.fanli.dto.pdd.PDDGoodsDetail; +import com.yeshi.fanli.entity.accept.AcceptData; import com.yeshi.fanli.entity.bus.activity.ActivityUser; +import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo; +import com.yeshi.fanli.entity.bus.user.UserInfo; import com.yeshi.fanli.entity.dynamic.CommentInfo; +import com.yeshi.fanli.entity.dynamic.DynamicInfo; +import com.yeshi.fanli.entity.dynamic.CommentInfo.CommentInfoEnum; 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; @@ -48,6 +66,8 @@ import com.yeshi.fanli.vo.goods.CouponInfoVO; import com.yeshi.fanli.vo.goods.GoodsDetailVO; import com.yeshi.fanli.vo.msg.ClientTextStyleVO; + +import net.sf.json.JSONObject; @Service public class GoodsEvaluateServiceImpl implements GoodsEvaluateService { @@ -74,7 +94,7 @@ private PinDuoDuoCacheUtil pinDuoDuoCacheUtil; @Override - public void saveHead(MultipartFile file, GoodsEvaluate record) throws GoodsEvaluateException { + public String saveHead(MultipartFile file, GoodsEvaluate record) throws GoodsEvaluateException { Integer state = record.getState(); if (state == null) { state = 0; @@ -102,6 +122,11 @@ throw new GoodsEvaluateException(1, "鎴鏃堕棿蹇呴』澶т簬寮�濮嬫椂闂�"); } + Integer dynamicType = record.getDynamicType(); + if (dynamicType == null) { + record.setDynamicType(1); + } + if (record.getShareNum() == null) record.setShareNum(0); @@ -112,13 +137,15 @@ record.setStartTime(new Date()); record.setPublishTime(record.getStartTime()); - if (StringUtil.isNullOrEmpty(record.getId())) { - record.setId(UUID.randomUUID().toString().replace("-", "")); + String id = record.getId(); + if (StringUtil.isNullOrEmpty(id)) { + id = UUID.randomUUID().toString().replace("-", ""); + record.setId(id); record.setShareNumReal(0); record.setCreateTime(new Date()); goodsEvaluateDao.save(record); } else { - GoodsEvaluate resultObj = goodsEvaluateDao.getById(record.getId()); + GoodsEvaluate resultObj = goodsEvaluateDao.getById(id); if (resultObj == null) throw new GoodsEvaluateException(1, "淇敼鍐呭宸蹭笉瀛樺湪"); @@ -130,6 +157,7 @@ resultObj.setTitle(tilte); goodsEvaluateDao.save(resultObj); } + return id; } /** @@ -199,6 +227,10 @@ if (StringUtil.isNullOrEmpty(videoUrl)) { throw new GoodsEvaluateException(1, "瑙嗛閾炬帴涓嶈兘涓虹┖"); } + InputStream inputStream = filevideo.getInputStream(); + BufferedImage sourceImg = ImageIO.read(inputStream); + int width = sourceImg.getWidth(); + int height = sourceImg.getHeight(); String picLink = uploadPicture(filevideo); if (imgVideo != null) { @@ -211,8 +243,6 @@ } else { imgVideo = new ImgInfo(); imgVideo.setId(UUID.randomUUID().toString().replace("-", "")); - imgVideo.setW(1); - imgVideo.setH(1); imgVideo.setLarge(true); imgVideo.setPid(pid); imgVideo.setUrl(picLink); @@ -220,6 +250,8 @@ imgVideo.setVideoUrl(videoUrl); imgVideo.setType(ImgEnum.video); } + imgVideo.setW(width); + imgVideo.setH(height); } } @@ -245,95 +277,102 @@ String[] pics = picUrls.split(","); if (pics != null) { listpic = new ArrayList<>(); - for (int i = 0; i < pics.length; i++ ) { - if(pics[i].startsWith("http")){ - listpic.add(pics[i]); - } - } - } - } - - if (fileRequest != null) { - for (int i = 0; i < 9; i++) { - MultipartFile file = fileRequest.getFile("file" + i); - if (file == null) { - continue; - } - // 涓婁紶鏂囦欢 - String picLink = uploadPicture(file); - if (listpic != null && listpic.size() > i) { - // 闇�瑕佸垹闄ょ殑list - String delUrl = listpic.get(i); - listDel.add(delUrl); - listpic.set(i, picLink); - continue; - } - listpic.add(picLink); - } - - // 鎸囧畾涓诲浘 - if (picNum == null || picNum > 9 || picNum < 1) { - picNum = 1; - } - - if (listpic != null && listpic.size() > 0) { - // 瀵规瘮鍥剧墖 - for (int j = 0; j < listOld.size(); j++) { - boolean del = true; - for (int i = 0; i < listpic.size(); i++) { - if (listpic.get(i).equals(listOld.get(j))) { - del = false; - break; + 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 (del) - listDel.add(listOld.get(j)); - } - - for (int i = 0; i < listpic.size(); i++) { - ImgInfo imgInfo0 = new ImgInfo(); - imgInfo0.setId(UUID.randomUUID().toString().replace("-", "")); - imgInfo0.setW(1); - imgInfo0.setH(1); - imgInfo0.setLarge(false); - imgInfo0.setPid(pid); - imgInfo0.setUrl(listpic.get(i)); - imgInfo0.setUrlHD(listpic.get(i)); - if (picNum - 1 == i) { - imgInfo0.setType(ImgEnum.goods); - // 鍟嗗搧淇℃伅 - GoodsDetailVO goodsDetailVO = null; // TODO -// getGoodsDetailVO(goodsId, goodsType); -// if (goodsDetailVO == null) { -// throw new GoodsEvaluateException(1, "璇ュ晢鍝佷俊鎭笉瀛樺湪"); -// } - - SimpleGoods simpleGoods = new SimpleGoods(); - simpleGoods.setGoodsId(goodsId); - simpleGoods.setGoodsType(goodsType); -// simpleGoods.setPrice(goodsDetailVO.getCouponPrice()); -// CouponInfoVO couponInfo = goodsDetailVO.getCouponInfo(); -// if (couponInfo == null) { -// simpleGoods.setState(1); -// } else { -// simpleGoods.setAmount(couponInfo.getAmount()); -// simpleGoods.setState(0); -// } - imgInfo0.setGoods(simpleGoods); - } else { - imgInfo0.setType(ImgEnum.img); } - listImg.add(imgInfo0); + if (picLink.startsWith("http")) { + listpic.add(picLink); + } } } } - - // 淇濆瓨鍥剧墖淇℃伅 + + // 鎸囧畾涓诲浘 + if (picNum == null || picNum > 9 || picNum < 1) { + picNum = 1; + } + + GoodsDetailVO goodsDetailVO = getGoodsDetailVO(goodsId, goodsType); + ; + if (goodsDetailVO == null) { + throw new GoodsEvaluateException(1, "璇ュ晢鍝佷俊鎭笉瀛樺湪"); + } + + int totalImg = 0; + if (listpic != null && listpic.size() > 0) { + for (int i = 0; i < listpic.size(); i++) { + ImgInfo imgInfo0 = new ImgInfo(); + imgInfo0.setId(UUID.randomUUID().toString().replace("-", "")); + imgInfo0.setW(1); + imgInfo0.setH(1); + imgInfo0.setLarge(false); + imgInfo0.setPid(pid); + imgInfo0.setUrl(listpic.get(i)); + imgInfo0.setUrlHD(listpic.get(i)); + + if (picNum - 1 == i) { + imgInfo0.setType(ImgEnum.goods); + SimpleGoods simpleGoods = new SimpleGoods(); + simpleGoods.setGoodsId(goodsId); + simpleGoods.setGoodsType(goodsType); + simpleGoods.setPrice(goodsDetailVO.getCouponPrice()); + CouponInfoVO couponInfo = goodsDetailVO.getCouponInfo(); + if (couponInfo == null) { + simpleGoods.setPrice(goodsDetailVO.getZkPrice()); + simpleGoods.setState(1); + } else { + simpleGoods.setPrice(goodsDetailVO.getCouponPrice()); + simpleGoods.setAmount(couponInfo.getAmount()); + simpleGoods.setState(0); + } + imgInfo0.setGoods(simpleGoods); + imgInfo0.setGoodsVO(goodsDetailVO); + } else { + imgInfo0.setType(ImgEnum.img); + } + listImg.add(imgInfo0); + totalImg++; + } + } + + if (listOld != null && listOld.size() > 0) { + for (int j = 0; j < listOld.size(); j++) { + boolean del = true; + String oldPic = listOld.get(j); + for (ImgInfo imgInfo : listImg) { + String url = imgInfo.getUrl(); + if (url.equals(oldPic)) { + del = false; + } + } + if (del) + listDel.add(listOld.get(j)); + } + } + + int lineNum = 0; + if (totalImg > 0) { + if (totalImg == 1) { + lineNum = 1; + } else if (totalImg <= 4) { + lineNum = 2; + } else { + lineNum = 3; + } + } + + resultObj.setLineNum(lineNum); + resultObj.setGoods(goodsDetailVO); resultObj.setMainPicNum(picNum); resultObj.setImgList(listImg); goodsEvaluateDao.save(resultObj); - + // 鍒犻櫎鍥剧墖 if (listDel.size() > 0) { for (String url : listDel) { @@ -366,7 +405,246 @@ } return goodsDetail; } - + + @Override + public void saveMultipleGoods(String pid, String videoUrl, String goodsList, + 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, "绗竴閮ㄥ垎淇℃伅缂哄け"); + + // 鍘熷皝瑙嗛闈㈠浘 + ImgInfo imgVideo = null; + List<String> listDel = new ArrayList<String>(); + List<ImgInfo> oldGoodsList = new ArrayList<ImgInfo>(); + + // 澶勭悊鍥剧墖 + List<ImgInfo> resultList = resultObj.getImgList(); + if (resultList != null && resultList.size() > 0) { + for (ImgInfo info : resultList) { + ImgEnum type = info.getType(); + if (type == ImgEnum.video) { + imgVideo = info; + } else if (type == ImgEnum.goods) { + oldGoodsList.add(info); + } + } + } + + // 瑙嗛閮ㄥ垎 + if (fileRequest != null) { + MultipartFile filevideo = fileRequest.getFile("filevideo"); + if (filevideo != null) { + if (StringUtil.isNullOrEmpty(videoUrl)) { + throw new GoodsEvaluateException(1, "瑙嗛閾炬帴涓嶈兘涓虹┖"); + } + + InputStream inputStream = filevideo.getInputStream(); + BufferedImage sourceImg = ImageIO.read(inputStream); + int width = sourceImg.getWidth(); + int height = sourceImg.getHeight(); + + String picLink = uploadPicture(filevideo); + if (imgVideo != null) { + String url = imgVideo.getUrl(); + if (!StringUtil.isNullOrEmpty(url)) { + listDel.add(url); + } + imgVideo.setUrl(picLink); + imgVideo.setUrlHD(picLink); + } else { + imgVideo = new ImgInfo(); + imgVideo.setId(UUID.randomUUID().toString().replace("-", "")); + imgVideo.setLarge(true); + imgVideo.setPid(pid); + imgVideo.setUrl(picLink); + imgVideo.setUrlHD(picLink); + imgVideo.setVideoUrl(videoUrl); + imgVideo.setType(ImgEnum.video); + } + imgVideo.setW(width); + imgVideo.setH(height); + } + } + + List<ImgInfo> listImg = new ArrayList<ImgInfo>(); + if (imgVideo != null) { + if (!StringUtil.isNullOrEmpty(videoUrl)) { + if (imgVideo != null && StringUtil.isNullOrEmpty(imgVideo.getUrl())) { + throw new GoodsEvaluateException(1, "瑙嗛灏侀潰鍥句笉鑳戒负绌�"); + } + imgVideo.setVideoUrl(videoUrl); + listImg.add(imgVideo); + } else { + String url = imgVideo.getUrl(); + if (!StringUtil.isNullOrEmpty(url)) { + listDel.add(url); + } + } + } + + int totalImg = 0; + if (!StringUtil.isNullOrEmpty(goodsList)) { + String[] goodsArray = goodsList.split(","); + if (goodsArray != null && goodsArray.length > 0) { + 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])); + if (goodsDetailVO == null) { + continue; + } + + String picUrl = goodsDetailVO.getPicUrl(); + if (fileRequest != null) { + MultipartFile file = fileRequest.getFile("file" + i); + if (file != null) { + picUrl = uploadPicture(file); + } + } + + ImgInfo imgInfo0 = new ImgInfo(); + imgInfo0.setId(UUID.randomUUID().toString().replace("-", "")); + imgInfo0.setW(1); + imgInfo0.setH(1); + imgInfo0.setLarge(false); + imgInfo0.setPid(pid); + imgInfo0.setUrl(picUrl); + imgInfo0.setUrlHD(picUrl); + imgInfo0.setType(ImgEnum.goods); + + SimpleGoods simpleGoods = new SimpleGoods(); + simpleGoods.setGoodsId(goodsDetailVO.getGoodsId()); + simpleGoods.setGoodsType(goodsDetailVO.getGoodsType()); + simpleGoods.setPrice(goodsDetailVO.getCouponPrice()); + CouponInfoVO couponInfo = goodsDetailVO.getCouponInfo(); + if (couponInfo == null) { + simpleGoods.setState(1); + } else { + simpleGoods.setAmount(couponInfo.getAmount()); + simpleGoods.setState(0); + } + imgInfo0.setGoods(simpleGoods); + imgInfo0.setGoodsVO(goodsDetailVO); + listImg.add(imgInfo0); + totalImg++; + } + } + } + + // 鏁版嵁瀵规瘮 鍒犻櫎鍥剧墖 + if (oldGoodsList != null && oldGoodsList.size() > 0) { + for (ImgInfo old : oldGoodsList) { + ImgEnum type = old.getType(); + if (type != ImgEnum.goods) { + continue; + } + + boolean del = false; + long oldGoodsId = old.getGoods().getGoodsId().longValue(); + int oldGoodsType = old.getGoods().getGoodsType().intValue(); + for (ImgInfo newInfo : listImg) { + ImgEnum type2 = old.getType(); + if (type2 != ImgEnum.goods) { + continue; + } + + if (oldGoodsId == newInfo.getGoods().getGoodsId().longValue() + && oldGoodsType == newInfo.getGoods().getGoodsType().intValue()) { + String url = newInfo.getUrl(); + if (url.equals(old.getUrl())) { + + } else if (url.contains(FilePathEnum.goodsEvaluate.getPath())) { + del = true; + } else { + newInfo.setUrl(old.getUrl()); + newInfo.setUrlHD(old.getUrlHD()); + } + break; + } + } + + if (del) { + listDel.add(old.getUrl()); + } + } + } + + int lineNum = 0; + if (totalImg > 0) { + if (totalImg == 1) { + lineNum = 1; + } else if (totalImg <= 4) { + lineNum = 2; + } else { + lineNum = 3; + } + } + + 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 + public void saveGoodsCoupon(String pid, String tags, 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.getType()) { + goodsCoupon = info; + } else if (CommentInfoEnum.currencyCoupon == info.getType()) { + currencyCoupon = info; + } + } + } + + List<CommentInfo> comments = new ArrayList<>(); + if (!StringUtil.isNullOrEmpty(content)) { + CommentInfo commentInfo = new CommentInfo(); + if (goodsCoupon != null) { + commentInfo.setId(goodsCoupon.getId()); + } else { + commentInfo.setId(UUID.randomUUID().toString().replace("-", "")); + } + commentInfo.setContent(content); + commentInfo.setType(CommentInfoEnum.goodsCoupon); + comments.add(commentInfo); + } + + if (currencyCoupon != null) { + comments.add(currencyCoupon); + } + + resultObj.setComments(comments); + goodsEvaluateDao.save(resultObj); + } + @Override public void saveSingleGoodsCoupon(String pid, CommentInfo commentInfo) throws GoodsEvaluateException, Exception { if (StringUtil.isNullOrEmpty(pid)) { @@ -377,18 +655,61 @@ 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.getType()) { + goodsCoupon = info; + } else if (CommentInfoEnum.currencyCoupon == info.getType()) { + currencyCoupon = info; + } + } + } + List<CommentInfo> comments = new ArrayList<>(); + if (goodsCoupon != null) { + comments.add(goodsCoupon); + } + if (commentInfo != null) { + if (currencyCoupon != null) { + commentInfo.setId(currencyCoupon.getId()); + } else { + commentInfo.setId(UUID.randomUUID().toString().replace("-", "")); + } + commentInfo.setType(CommentInfoEnum.currencyCoupon); + + // 鏍囩淇℃伅 + List<ClientTextStyleVO> tagList = new ArrayList<>(); + String couponSource = commentInfo.getCouponSource(); + if (!StringUtil.isNullOrEmpty(couponSource)) { + ClientTextStyleVO styleVO = new ClientTextStyleVO(); + styleVO.setColor("#16C253"); + styleVO.setContent(couponSource); + tagList.add(styleVO); + } + String coupon = commentInfo.getCoupon(); + if (!StringUtil.isNullOrEmpty(coupon)) { + ClientTextStyleVO styleVO = new ClientTextStyleVO(); + styleVO.setColor("#E5005C"); + styleVO.setContent(coupon); + tagList.add(styleVO); + } + commentInfo.setTagList(tagList); + comments.add(commentInfo); } + resultObj.setComments(comments); - + goodsEvaluateDao.save(resultObj); } - @Override - public void saveActivityPic(String pid, ImgInfo imgInfo, MultipartHttpServletRequest fileRequest) throws GoodsEvaluateException, Exception { + public void saveActivityPic(String pid, ImgInfo imgInfo, MultipartHttpServletRequest fileRequest) + throws GoodsEvaluateException, Exception { if (StringUtil.isNullOrEmpty(pid)) { throw new GoodsEvaluateException(1, "璇蜂繚瀛樼涓�閮ㄥ垎淇℃伅"); } @@ -403,45 +724,55 @@ ImgInfo imgactivity = null; List<ImgInfo> resultList = resultObj.getImgList(); if (resultList != null && resultList.size() > 0) { - for(ImgInfo info: resultList) { + for (ImgInfo info : resultList) { if (info.getType() == ImgEnum.activity) { activityPic = info.getActivityPic(); - imgVideo = info; + imgactivity = info; } else { imgVideo = info; videoPic = info.getUrl(); } } } - - + + 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); + + InputStream inputStream = filevideo.getInputStream(); + BufferedImage sourceImg = ImageIO.read(inputStream); + width = sourceImg.getWidth(); + height = sourceImg.getHeight(); String picLink = uploadPicture(filevideo); videoPic = picLink; } - + 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){ + if (imgVideo != null) { imgVideo.setUrl(videoPic); imgVideo.setUrlHD(videoPic); imgVideo.setVideoUrl(imgInfo.getVideoUrl()); } else { imgVideo = new ImgInfo(); imgVideo.setId(UUID.randomUUID().toString().replace("-", "")); - imgVideo.setW(1); - imgVideo.setH(1); imgVideo.setLarge(true); imgVideo.setPid(pid); imgVideo.setUrl(videoPic); @@ -449,33 +780,228 @@ imgVideo.setVideoUrl(imgInfo.getVideoUrl()); imgVideo.setType(ImgEnum.video); } - listImg.add(imgVideo); - } - - if (!StringUtil.isNullOrEmpty(activityPic) || !StringUtil.isNullOrEmpty(imgInfo.getActivityUrl())) { - if (imgVideo != null){ - imgVideo.setUrl(activityPic); - imgVideo.setUrlHD(activityPic); - imgVideo.setVideoUrl(imgInfo.getVideoUrl()); + if (width > 0) { + imgVideo.setW(width); + imgVideo.setH(height); } else { - imgVideo = new ImgInfo(); - imgVideo.setId(UUID.randomUUID().toString().replace("-", "")); - imgVideo.setW(1); - imgVideo.setH(1); - imgVideo.setLarge(true); - imgVideo.setPid(pid); - imgVideo.setUrl(activityPic); - imgVideo.setUrlHD(activityPic); - imgVideo.setActivityUrl(imgInfo.getActivityUrl()); - imgVideo.setType(ImgEnum.activity); + imgVideo.setW(imgVideo.getW()); + imgVideo.setH(imgVideo.getH()); } listImg.add(imgVideo); } + + 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); + } + resultObj.setLineNum(1); resultObj.setImgList(listImg); goodsEvaluateDao.save(resultObj); } - + @Override + public void saveSuCai(String pid, String videoUrl, 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, "绗竴閮ㄥ垎淇℃伅缂哄け"); + + // 鍘熷皝瑙嗛闈㈠浘 + ImgInfo imgVideo = null; + ImgInfo imgActivity = null; + List<String> listDel = new ArrayList<String>(); + List<String> listOld = new ArrayList<String>(); + + List<ImgInfo> listOldImgInfo = new ArrayList<ImgInfo>(); + // 澶勭悊鍥剧墖 + List<ImgInfo> resultList = resultObj.getImgList(); + if (resultList != null && resultList.size() > 0) { + for (ImgInfo info : resultList) { + ImgEnum type = info.getType(); + if (type == ImgEnum.video) { + imgVideo = info; + } else if (type == ImgEnum.img) { + listOldImgInfo.add(info); + String url = info.getUrl(); + if (!StringUtil.isNullOrEmpty(url)) { + listOld.add(url); + } + } else if (type == ImgEnum.activity) { + imgActivity = info; + } + } + } + + MultipartFile activityFile = null; + // 瑙嗛閮ㄥ垎 + if (fileRequest != null) { + MultipartFile filevideo = fileRequest.getFile("filevideo"); + if (filevideo != null) { + if (StringUtil.isNullOrEmpty(videoUrl)) { + throw new GoodsEvaluateException(1, "瑙嗛閾炬帴涓嶈兘涓虹┖"); + } + InputStream inputStream = filevideo.getInputStream(); + BufferedImage sourceImg = ImageIO.read(inputStream); + int width = sourceImg.getWidth(); + int height = sourceImg.getHeight(); + + String picLink = uploadPicture(filevideo); + if (imgVideo != null) { + String url = imgVideo.getUrl(); + if (!StringUtil.isNullOrEmpty(url)) { + listDel.add(url); + } + imgVideo.setUrl(picLink); + imgVideo.setUrlHD(picLink); + } else { + imgVideo = new ImgInfo(); + imgVideo.setId(UUID.randomUUID().toString().replace("-", "")); + imgVideo.setLarge(true); + imgVideo.setPid(pid); + imgVideo.setUrl(picLink); + imgVideo.setUrlHD(picLink); + imgVideo.setVideoUrl(videoUrl); + imgVideo.setType(ImgEnum.video); + } + imgVideo.setW(width); + imgVideo.setH(height); + } + + activityFile = fileRequest.getFile("activityFile"); + } + + List<ImgInfo> listImg = new ArrayList<ImgInfo>(); + if (imgVideo != null) { + if (!StringUtil.isNullOrEmpty(videoUrl)) { + if (imgVideo != null && StringUtil.isNullOrEmpty(imgVideo.getUrl())) { + throw new GoodsEvaluateException(1, "瑙嗛灏侀潰鍥句笉鑳戒负绌�"); + } + + imgVideo.setVideoUrl(videoUrl); + listImg.add(imgVideo); + } else { + String url = imgVideo.getUrl(); + if (!StringUtil.isNullOrEmpty(url)) { + listDel.add(url); + } + } + } + + if (activityFile != null) { + InputStream inputStream = activityFile.getInputStream(); + BufferedImage sourceImg = ImageIO.read(inputStream); + int width = sourceImg.getWidth(); + int height = sourceImg.getHeight(); + + String picLink = uploadPicture(activityFile); + + ImgInfo activity = new ImgInfo(); + activity.setId(UUID.randomUUID().toString().replace("-", "")); + activity.setLarge(true); + activity.setPid(pid); + activity.setUrl(picLink); + activity.setUrlHD(picLink); + activity.setActivityPic(picLink); + activity.setW(width); + activity.setH(height); + activity.setType(ImgEnum.activity); + listImg.add(activity); + } else if (imgActivity != null) { + listImg.add(imgActivity); + } + + // 缂栬緫鍥剧墖 + 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(true); + imgInfo0.setPid(pid); + imgInfo0.setUrl(picLink); + imgInfo0.setUrlHD(picLink); + imgInfo0.setType(ImgEnum.img); + imgVideo.setW(1); + imgVideo.setH(1); + listImg.add(imgInfo0); + continue; + } + } + + if (picLink.startsWith("http")) { + if (listOldImgInfo != null) { + for (ImgInfo imgInfo : listOldImgInfo) { + String url = imgInfo.getUrl(); + if (picLink.equals(url)) { + listImg.add(imgInfo); + break; + } + } + } + } + } + } + } + + if (listOld != null && listOld.size() > 0) { + for (int j = 0; j < listOld.size(); j++) { + boolean del = true; + String oldPic = listOld.get(j); + for (ImgInfo imgInfo : listImg) { + String url = imgInfo.getUrl(); + if (url.equals(oldPic)) { + del = false; + } + } + if (del) + listDel.add(listOld.get(j)); + } + } + resultObj.setLineNum(1); + resultObj.setImgList(listImg); + goodsEvaluateDao.save(resultObj); + + // 鍒犻櫎鍥剧墖 + if (listDel.size() > 0) { + for (String url : listDel) { + if (url.contains(FilePathEnum.goodsEvaluate.getPath())) { + removePicture(url); + } + } + } + } + @Override public void deleteBatchByPrimaryKey(List<String> list) { if (list == null || list.size() == 0) { @@ -549,6 +1075,16 @@ } @Override + public void release(String id) throws GoodsEvaluateException { + GoodsEvaluate goodsEvaluate = goodsEvaluateDao.getById(id); + if (goodsEvaluate == null) { + throw new GoodsEvaluateException(1, "鍔ㄦ�佸凡涓嶅瓨鍦�"); + } + goodsEvaluate.setState(1); + goodsEvaluateDao.save(goodsEvaluate); + } + + @Override public void deleteComment(String pid, List<String> list) throws GoodsEvaluateException { if (list == null || list.size() == 0) { return; @@ -597,19 +1133,19 @@ } @Override - public List<GoodsEvaluate> query(int start, int count, String key, Integer state) { - return goodsEvaluateDao.query(start, count, key, state); + public List<GoodsEvaluate> query(int start, int count, String key, Integer state, int dynamicType) { + return goodsEvaluateDao.query(start, count, key, state, dynamicType); } @Override - public long count(String key, Integer state) { - return goodsEvaluateDao.count(key, state); + public long count(String key, Integer state, int dynamicType) { + return goodsEvaluateDao.count(key, state, dynamicType); } @Override @Cacheable(value = "dynamicCache", key = "'queryValidEvaluateCache-'+#start") public List<GoodsEvaluate> queryValidEvaluateCache(int start, int count) { - List<GoodsEvaluate> list = goodsEvaluateDao.queryValid(start, count); + List<GoodsEvaluate> list = goodsEvaluateDao.queryValid(start, count, 1); // 鏇存柊鍟嗗搧淇℃伅 executor.execute(new Runnable() { @@ -624,7 +1160,26 @@ @Override public long countValid() { - return goodsEvaluateDao.countValid(); + return goodsEvaluateDao.countValid(1); + } + + @Override + @Cacheable(value = "dynamicCache", key = "'queryMaterialsCache-'+#start+'-'+#type") + public List<GoodsEvaluate> queryMaterialsCache(int start, int count, int type) { + List<GoodsEvaluate> list = goodsEvaluateDao.queryValid(start, count, type); + // 鏇存柊鍟嗗搧淇℃伅 + executor.execute(new Runnable() { + @Override + public void run() { + updateGoodInfo(list); + } + }); + return list; + } + + @Override + public long countValidMaterials(int type) { + return goodsEvaluateDao.countValid(type); } /** @@ -662,6 +1217,8 @@ GoodsDetailVO goods = goodsEvaluate.getGoods(); if (goods != null) { GoodsDetailVO goodsNew = getGoodsNewInfo(goods.getGoodsId(), goods.getGoodsType(), paramsDTO); + if (goodsNew != null) + goodsEvaluate.setGoods(goodsNew); } // 鏇存柊鍟嗗搧淇℃伅 List<ImgInfo> imgList = goodsEvaluate.getImgList(); @@ -669,6 +1226,32 @@ continue; } + for (ImgInfo imgInfo : imgList) { + SimpleGoods simpleGoods = imgInfo.getGoods(); + if (simpleGoods == null) { + continue; + } + + GoodsDetailVO goodsDetailVO = getGoodsNewInfo(simpleGoods.getGoodsId(), simpleGoods.getGoodsType(), + paramsDTO); + if (goodsDetailVO != null) { + simpleGoods.setPrice(goodsDetailVO.getCouponPrice()); + CouponInfoVO couponInfo = goodsDetailVO.getCouponInfo(); + if (couponInfo == null) { + simpleGoods.setPrice(goodsDetailVO.getZkPrice()); + simpleGoods.setState(1); + } else { + simpleGoods.setPrice(goodsDetailVO.getCouponPrice()); + simpleGoods.setAmount(couponInfo.getAmount()); + simpleGoods.setState(0); + } + imgInfo.setGoods(simpleGoods); + imgInfo.setGoodsVO(goodsDetailVO); + } + } + + goodsEvaluate.setUpdateTime(new Date()); + goodsEvaluateDao.save(goodsEvaluate); } } catch (Exception e) { LogHelper.errorDetailInfo(e); @@ -692,4 +1275,72 @@ return vo; } + @Override + public void addGoodsEvaluateByDynamicInfo(DynamicInfo info) { + 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.plusYears(new Date(), 100)); + + 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()); + + CouponInfoVO couponInfo = goodsVO.getCouponInfo(); + if (couponInfo == null) { + simpleGoods.setState(0); + simpleGoods.setPrice(goodsVO.getZkPrice()); + } else { + simpleGoods.setState(goodsVO.getState()); + simpleGoods.setPrice(goodsVO.getCouponPrice()); + simpleGoods.setAmount(couponInfo.getAmount()); + } + imgInfo.setGoods(simpleGoods); + goodsEvaluate.setGoods(goodsVO); + } + imgList.add(imgInfo); + } + goodsEvaluate.setImgList(imgList); + goodsEvaluateDao.save(goodsEvaluate); + } catch (Exception e) { + LogHelper.errorDetailInfo(e); + } + } + } -- Gitblit v1.8.0