Administrator
2020-02-23 388be9f734f5b80c348bcc956726c206002e832a
fanli/src/main/java/com/yeshi/fanli/service/impl/dynamic/GoodsEvaluateServiceImpl.java
@@ -25,7 +25,9 @@
import com.yeshi.fanli.dto.pdd.PDDGoodsDetail;
import com.yeshi.fanli.entity.bus.activity.ActivityUser;
import com.yeshi.fanli.entity.dynamic.CommentInfo;
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.ImgInfo;
import com.yeshi.fanli.entity.dynamic.ImgInfo.ImgEnum;
import com.yeshi.fanli.entity.dynamic.SimpleGoods;
@@ -74,7 +76,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 +104,11 @@
            throw new GoodsEvaluateException(1, "截止时间必须大于开始时间");
      }
      Integer dynamicType = record.getDynamicType();
      if (dynamicType == null) {
         record.setDynamicType(1);
      }
      if (record.getShareNum() == null)
         record.setShareNum(0);
@@ -112,13 +119,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 +139,7 @@
         resultObj.setTitle(tilte);
         goodsEvaluateDao.save(resultObj);
      }
      return id;
   }
   /**
@@ -245,87 +255,77 @@
         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]);
            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) {
               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 (picNum == null || picNum > 9 || picNum < 1) {
            picNum = 1;
         }
      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 (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;
                  }
            if (picNum - 1 == i) {
               imgInfo0.setType(ImgEnum.goods);
               // 商品信息
               GoodsDetailVO goodsDetailVO = getGoodsDetailVO(goodsId, goodsType);
               if (goodsDetailVO == null) {
                  throw new GoodsEvaluateException(1, "该商品信息不存在");
               }
               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);
               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 {
                  imgInfo0.setType(ImgEnum.img);
                  simpleGoods.setAmount(couponInfo.getAmount());
                  simpleGoods.setState(0);
               }
               listImg.add(imgInfo0);
               imgInfo0.setGoods(simpleGoods);
            } else {
               imgInfo0.setType(ImgEnum.img);
            }
            listImg.add(imgInfo0);
         }
      }
      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));
         }
      }
      
@@ -333,7 +333,7 @@
      resultObj.setMainPicNum(picNum);
      resultObj.setImgList(listImg);
      goodsEvaluateDao.save(resultObj);
      // 删除图片
      if (listDel.size() > 0) {
         for (String url : listDel) {
@@ -366,6 +366,223 @@
      }
      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, "视频链接不能为空");
            }
            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.setW(1);
               imgVideo.setH(1);
               imgVideo.setLarge(true);
               imgVideo.setPid(pid);
               imgVideo.setUrl(picLink);
               imgVideo.setUrlHD(picLink);
               imgVideo.setVideoUrl(videoUrl);
               imgVideo.setType(ImgEnum.video);
            }
         }
      }
      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 (!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);
            }
         }
      }
      // 数据对比 删除图片
      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());
            }
         }
      }
      // 保存图片信息
      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(currencyCoupon);
      }
      if (currencyCoupon != null) {
         comments.add(currencyCoupon);
      }
      resultObj.setComments(comments);
      goodsEvaluateDao.save(resultObj);
   }
   
   @Override
   public void saveSingleGoodsCoupon(String pid, CommentInfo commentInfo) throws GoodsEvaluateException, Exception {
@@ -377,18 +594,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);
      
      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,18 +663,17 @@
      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();
            }
         }
      }
      List<ImgInfo> listImg = new ArrayList<ImgInfo>();
      if (fileRequest != null) {
         MultipartFile filevideo = fileRequest.getFile("filevideo");
@@ -423,7 +682,7 @@
            String picLink = uploadPicture(filevideo);
            videoPic = picLink;
         }
         MultipartFile activityfile = fileRequest.getFile("activityfile");
         if (activityfile != null) {
            removePicture(activityPic);
@@ -431,9 +690,9 @@
            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());
@@ -451,30 +710,173 @@
         }
         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 (imgactivity != null) {
            imgactivity.setUrl(activityPic);
            imgactivity.setUrlHD(activityPic);
            imgactivity.setActivityUrl(imgInfo.getActivityUrl());
         } 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);
            imgactivity = new ImgInfo();
            imgactivity.setId(UUID.randomUUID().toString().replace("-", ""));
            imgactivity.setW(1);
            imgactivity.setH(1);
            imgactivity.setLarge(true);
            imgactivity.setPid(pid);
            imgactivity.setUrl(activityPic);
            imgactivity.setUrlHD(activityPic);
            imgactivity.setActivityUrl(imgInfo.getActivityUrl());
            imgactivity.setType(ImgEnum.activity);
         }
         listImg.add(imgVideo);
         listImg.add(imgactivity);
      }
      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;
      List<String> listDel = new ArrayList<String>();
      List<String> listOld = new ArrayList<String>();
      // 处理图片
      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) {
               String url = info.getUrl();
               if (!StringUtil.isNullOrEmpty(url)) {
                  listOld.add(url);
               }
            }
         }
      }
      // 视频部分
      if (fileRequest != null) {
         MultipartFile filevideo = fileRequest.getFile("filevideo");
         if (filevideo != null) {
            if (StringUtil.isNullOrEmpty(videoUrl)) {
               throw new GoodsEvaluateException(1, "视频链接不能为空");
            }
            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.setW(1);
               imgVideo.setH(1);
               imgVideo.setLarge(true);
               imgVideo.setPid(pid);
               imgVideo.setUrl(picLink);
               imgVideo.setUrlHD(picLink);
               imgVideo.setVideoUrl(videoUrl);
               imgVideo.setType(ImgEnum.video);
            }
         }
      }
      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);
            }
         }
      }
      // 编辑图片
      List<String> listpic = null;
      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 (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));
            imgInfo0.setType(ImgEnum.img);
            listImg.add(imgInfo0);
         }
      }
      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.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) {
@@ -547,6 +949,17 @@
      goodsEvaluate.setComments(comments);
      goodsEvaluateDao.save(goodsEvaluate);
   }
   @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 {
@@ -597,19 +1010,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 +1037,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);
   }
   /**